我的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);
}
EDIT:
使用后
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
这是我现在得到的错误:
致命错误:未捕获mysqli_sql_exception:您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在C:\ xampp \ htdocs(A)Book 2.0 \ Bootstrap \ content_function.php中的第6行''12'附近使用正确的语法:116堆栈跟踪:#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 抛出C:\ xampp \ htdocs(A)Book 2.0 \ Bootstrap \ content_function . php在116行
2 回答
您的查询中有错误:
字段名称必须位于«=»操作数的左侧,值将转到右侧
字段值,当类型字符串(我认为,在您的查询中是这种情况)时,必须用单引号括起来(或者更好,use bind parameters /这是将变量值传递给sql查询的标准) .
代码:
我认为你应该在'='符号之后执行你在查询中放入的id /实际值 . 喜欢: