首页 文章

SQL查询未正确执行

提问于
浏览
-1

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

  • 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."'"
    );
    
  • 1

    我认为你应该在'='符号之后执行你在查询中放入的id /实际值 . 喜欢:

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

相关问题