我的SQL查询似乎有错误。我不断收到此警告:
警告:mysqli_num_rows()期望参数1为mysqli_result,布尔值在
中给出
我敢肯定,它指向一个语法错误,我在线找到了一个SQL检查器,它说也有一个错误。我已经看了好几天了,但似乎找不到什么问题。
代码如下:
function countReplies($cid, $scid, $tid, $mysqli){
$select = mysqli_query($mysqli, "SELECT category_id, subcatgory_id, topic_id FROM replies WHERE ".$cid." = category_id AND ".$scid." = subcategory_id AND ".$tid." = topic_id");
return mysqli_num_rows($select);
}
编辑:
使用后
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
这是我现在遇到的错误:
致命错误:mysqli_sql_exception未捕获:SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在C:\ xampp \ htdocs(A)Book 6 \ Bootstrap \ content_function.php:116中的第6行的``12''附近使用:堆栈堆栈跟踪:#0 C :\ xampp \ htdocs(A)Book 2.0 \ Bootstrap \ content_function.php(116):mysqli_query(Object(mysqli),'SELECT category ...')#1 C:\ xampp \ htdocs(A)Book 2.0 \ Bootstrap \ readtopic.php(55):countReplies('1','2','12',Object(mysqli))#2 {main}放在C:\ xampp \ htdocs(A)Book 2.0 \ Bootstrap \ content_function中。第116行上的php
答案 0 :(得分:1)
我认为您应该在ID后面加上ID或实际值。喜欢:
"SELECT category_id, subcatgory_id, topic_id FROM replies WHERE category_id = '.$cid.'
AND subcategory_id = '.$scid.' AND topic_id = '.$tid.';");
答案 1 :(得分:0)
查询中有错误:
字段名称必须位于«́»操作数的左侧,值应位于右侧
字段值(当为字符串类型时(我认为是您的查询中的情况))必须用单引号引起来(或者更好,use bind parameters /这是传递的标准变量值添加到sql查询中。)
代码:
$select = mysqli_query($mysqli,
"SELECT category_id, subcatgory_id, topic_id
FROM replies
WHERE
category_id = '".$cid."'
AND subcategory_id = '".$scid."'
AND topic_id = '".$tid."'"
);