Php SQL查询未正确执行
我的SQL查询似乎有错误。我一直收到这样的警告: 警告:mysqli_num_rows()要求参数1为mysqli_结果,布尔值在 我很确定这指向了一个语法错误,我在网上找到了一个SQL检查器,它说也有一个错误。我已经看了好几天了,但似乎找不到问题所在 代码如下:Php SQL查询未正确执行,php,sql,function,mysqli,Php,Sql,Function,Mysqli,我的SQL查询似乎有错误。我一直收到这样的警告: 警告:mysqli_num_rows()要求参数1为mysqli_结果,布尔值在 我很确定这指向了一个语法错误,我在网上找到了一个SQL检查器,它说也有一个错误。我已经看了好几天了,但似乎找不到问题所在 代码如下: function countReplies($cid, $scid, $tid, $mysqli){ $select = mysqli_query($mysqli, "SELECT category_id, s
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_报告(mysqli_报告错误| mysqli_报告严格)
这就是我现在遇到的错误:
致命错误:未捕获mysqli\u sql\u异常:您的sql语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解在C:\xampp\htdocs(A)Book 2.0\Bootstrap\content_function.php:116堆栈跟踪:#0 C:\xampp\htdocs(A)Book 2.0\Bootstrap\content_function.php(116):mysqli_查询(对象(mysqli),'SELECT category…')#1 C:\xampp\htdocs(A)Book 2.0\Bootstrap\readtopic.php(55):在C:\xampp\htdocs(A)Book 2.0\Bootstrap\content\u function.php的第116行中抛出countrepries('1','2','12',Object(mysqli))#2{main}
我认为您应该在“=”符号之后执行您在查询中输入的ID/实际值。比如:
"SELECT category_id, subcatgory_id, topic_id FROM replies WHERE category_id = '.$cid.'
AND subcategory_id = '.$scid.' AND topic_id = '.$tid.';");
您的查询中有错误:
- 字段名必须位于«=»操作数的左侧,值必须位于右侧
- 字段值的类型为string(我假设查询中就是这种情况)时,必须用单引号括起来(或者更好,这是向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."'"
);
可能重复的评论不用于扩展讨论;此对话已被取消。“字段值必须用单引号括起来”-仅当它们是字符串时。整数的处理方式不同。“或者更好的是,使用绑定参数”,这是肯定的。您忘记了此
的$
选择顺便说一句。谢谢@FunkFortyNiner,修复了答案