-2

我正在创建一个网站,并且在网站内会有一个搜索框,可让您搜索网站上的项目。我有代码,但我不断收到错误消息。

<?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 查询来运行搜索以返回搜索?

任何建议将不胜感激。

谢谢

4

2 回答 2

0

该错误很可能是因为您的语法。

$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 类型。

于 2013-03-19T11:40:50.507 回答
0

该代码需要一些工作。

那个循环看起来有缺陷。尝试这样的事情:

echo "Your search returned $search_rows results";
while($search_query->fetch()){
   echo $product_name . "<br>";
}
于 2013-03-19T11:42:42.180 回答