【发布时间】:2011-05-15 10:07:58
【问题描述】:
我有一个 PHP 脚本,它与 jQuery 一起提供搜索建议。它从 MySQL 数据库中提取结果。但是,对于用户键入的字母,我只希望一次显示 5 个结果,但似乎所有结果都出现了。为什么会这样?
我的代码是:
<p id="searchresults"><?php
$db=new mysqli('localhost','username','password','database');
if(isset($_POST['queryString'])){
$queryString=$db->real_escape_string($_POST['queryString']);
if(strlen($queryString)>0){
$query = $db->query("SELECT * FROM search s WHERE name LIKE '%" . $queryString . "%'");
if($query){
while ($result = $query ->fetch_object()){
echo '<a href="/search/'.$result->name.'/1/">';
$name=$result->name;
echo ''.$name.'';
}
}
}
}
?></p>
我希望你能理解我要描述的内容。
【问题讨论】:
-
real_escape_string真的是 SQL 注入安全的吗? -
@Uwe:
real_escape_string提供 SQL 注入安全性。所以,是的。 (虽然 PDO 更好。)