繁体   English   中英

像MySQL预备语句

[英]LIKE MySQL Prepared Statement

我正在使用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;
}
?>
if($stmt->num_rows() == 0)

这是不正确的。 num_rows是属性,而不是方法。 应该是:

if($stmt->num_rows == 0)

我建议启用错误报告以发现这种愚蠢的错误。 有关如何执行此操作的更多信息,请参见此线程

您应该添加对store_result的调用,以获取结果中记录的准确计数:

尝试:

...
$stmt->execute();
$stmt->store_result(); // Add this line
$stmt->bind_result($Name);

if($stmt->num_rows == 0)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM