2014-03-04 69 views

回答

0

這是因爲單引號嵌入到文字字符串$sql。它會暫停查詢,而這很危險,因爲黑客可以執行所謂的SQL注入 - >https://www.acunetix.com/websitesecurity/sql-injection/

無論如何,mysql擴展已被棄用,這意味着它不再被支持和維護。你有兩個簡單的選項:mysqli或PDO。我個人推薦使用PDO - >http://cz1.php.net/PDO。這將是很容易轉換你的代碼。

隨着PDO您可以將輸入綁定到特定的字段:

$sql="Select count(*) from FIMTRN_Memorial where FirstName like :search"; 
$sql = $database->prepare($sql); 
$sql->execute(array(":search" => "%".$_SESSION['searchchar']."%")); 

$result = $sql->fetchAll(PDO::FETCH_ASSOC); 

我希望我能幫助!

更新: 通過上述參數化查詢,您的搜索字符串不能包含百分號,因爲這將用作通配符。

更新2: 我不知道你是否注意到了$_GET{'page'},就是要在以前的答案$_GET['page']