SQL查询执行不正确



我的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语法有错误;在C:\examplep\htdocs(A(Book 2.0\Bootstrap\content_function.php:116堆栈跟踪:#0 C:\examplep\tdocs(B(Book 2.0\ Bootstrap\content_function.php(116(:mysqli_query(Object(mysqli(,'SELECT category…'(的第6行"12"附近,查看与MariaDB服务器版本相对应的手册,以获取要使用的正确语法#1 C:\xamplep\htdocs(A(Book 2.0\Bootstrap\readtopic.php

我认为你应该在'='符号后执行你放在查询中的ids/actual值

"SELECT category_id, subcatgory_id, topic_id FROM replies WHERE category_id = '.$cid.' 
AND subcategory_id = '.$scid.' AND topic_id = '.$tid.';");

您的查询中有错误:

  • 字段名必须位于«=»操作数的左侧,值必须位于的右侧

  • 当字段值的类型为字符串时(我认为在您的查询中就是这样(,必须用单引号括起来(或者更好的是,使用绑定参数/这是向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."'"
);

最新更新