SQL查询无法正确执行

时间:2018-12-08 21:41:50

标签: php sql function mysqli

我的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

2 个答案:

答案 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."'"
);