我正在创建一个网站,在网站内会有一个搜索框,可以让你搜索网站上的项目。我有代码,但我一直得到一个错误信息。
<?php
include 'connect.php';
$search = $_POST['search']."*";
$search_query = $link->prepare("SELECT name FROM products WHERE MATCH(name)
AGAINST (? IN BOOLEAN MODE)")
$search_query->bind_param('s', $search);
$search_query->execute();
$search_query->store_result();
$search_rows = $search_query->num_rows;
$search_query->bind_result($product_name);
if($search_rows > 0){
while($search_query->fetch()){
echo "Your search returned $search_rows results";
echo $product_name."<br>";
}
} else { echo "Your search returned no results, sorry :("; }
是否有可能运行一个搜索使用mysql查询从数据库返回搜索??
如有任何建议,我将不胜感激。
谢谢
这个错误很可能是你的语法错误。
$search_query->store_result();
$search_rows = $search_query->num_rows;
$search_query->bind_result($product_name);
在这里,您首先尝试存储结果,然后将结果绑定到导致上述错误的变量$product_name
。
bind_result
状态:
注意,所有列必须在
mysqli_stmt_execute()
之后和调用mysqli_stmt_fetch()
之前绑定。根据列类型的不同,绑定变量可以静默地更改为相应的PHP类型。
这段代码还需要修改。
这个循环看起来有缺陷。试试这样做:
echo "Your search returned $search_rows results";
while($search_query->fetch()){
echo $product_name . "<br>";
}