为什么我会有这种魔力

m3eecexj  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(311)

当我试着去做的时候,我得到了这个错误 mysqli_num_rows() 警告:mysqli\u num\u rows()期望参数1是mysqli\u result,bool在第13行的c:\xampp\htdocs\php\search.php中给出没有与您的搜索匹配的结果

$search = mysqli_real_escape_string($conn, $_POST['search']);
$sql = "SELECT * FROM posts WHERE a_title LIKE '%$search%' OR a_text LIKE '%$search%' OR a_author LIKE '%$search%' OR a_date LIKE '%$search%";
$result = mysqli_query($conn, $sql);
$queryResult = mysqli_num_rows($result);
mtb9vblg

mtb9vblg1#

很可能你的查询失败了。在这种情况下 mysqli_query 返回布尔值false,而不是mysqli\u结果,如手册中所述。
运行查询后需要检查错误,如:

if ($result = mysqli_query($conn, $sql)) {
    $queryResult = mysqli_num_rows($result);
} else {
    printf("Error: %s\n", mysqli_error($conn));
}

通过查看您的查询,我发现您缺少最后一个报价 ' (也可能是打字错误):

$sql = 
    "SELECT * 
     FROM posts 
     WHERE 
         a_title LIKE '%$search%' 
         OR a_text LIKE '%$search%'
         OR a_author LIKE '%$search%'
         OR a_date LIKE '%$search%";

为了避免这种情况,并防止sql注入,您应该使用bind参数。

相关问题