我正在使用AJAX和准备好的语句创建搜索引擎。发送搜索变量并且AJAX查询成功,但问题在于我的搜索查询语法。无论我的搜索字词与我的关键字的确切程度如何,我的num_rows始终为0.我在搜索字词中添加了% %
,我尝试删除空白区域,但我没有想法。
关键词的例子是悲伤,声学,电子,蓝调等。
<?php
include 'config.php';
$partialSearch = "%".$_POST['partialSearch']."%";
$stmt = $mysqli->prepare("SELECT Name FROM videos WHERE Keywords LIKE ? ");
$stmt->bind_param('s',$partialSearch);
$stmt->execute();
$stmt->bind_result($Name);
if($stmt->num_rows() == 0)
{
echo "No results found for ".$_POST['partialSearch'];
}else{
echo "Results for ".$_POST['partialSearch'];
echo $Name;
}
?>
答案 0 :(得分:1)
if($stmt->num_rows() == 0)
这是不正确的。 num_rows
是属性,而不是方法。应该是:
if($stmt->num_rows == 0)
我建议启用错误报告以发现这样的愚蠢错误。有关如何执行此操作的详细信息,请参阅this thread。
答案 1 :(得分:1)
您应该添加对store_result
的调用,以获得结果中记录的准确计数:
尝试:
...
$stmt->execute();
$stmt->store_result(); // Add this line
$stmt->bind_result($Name);
if($stmt->num_rows == 0)
...