我正在研究搜索结果的分页。我在下面提到链接,当搜索文本以单引号开头时,我无法传递值。 How get post value in pagination。 你能帮我么.. 感谢
答案 0 :(得分: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']
。