我正在尝试对我的网站进行实时搜索。但是用于获取结果的 mysqli 准备语句不起作用。我有以下代码:
$value = $_POST['value'];
$query = $db->prepare("
select title from forums where title IN(?)
");
$value = explode(' ',$value);
$value = "'" . implode("','", $value) . "'";
$query -> bind_param('s',$value);
$query -> execute();
$query -> store_result();
$number = $query -> num_rows();
if($number == 0){
echo "No results found.";
}else{
$query -> bind_result($title);
while($query -> fetch()){
echo $title.'<hr>';
}
我不知道搜索短语中会有多少个单词,所以我不能使用:
IN(?,?,?,...)
我的论坛表中有一条标题为“这是一个测试论坛”的记录。但是当我输入名称时,结果不显示。我是否正确地做准备好的陈述。请帮助
更新
感谢所有回答和评论的人。我最终使用了以下代码:
$value = $_POST['value'];
$query = $db->prepare("
select title from forums where match(title) against(?) OR name LIKE CONCAT('%',?,'%')
");
$query -> bind_param('ss',$value,$value);
$query -> execute();
$query -> store_result();
$numrows = $query -> num_rows();
if($numrows == 0){
echo "No results found";
}
else{
$query -> bind_result($title);
while($query -> fetch()){
echo '<hr>';
echo $title;
echo '<hr>';
}
}