SQL-запрос не выполняется должным образом - PullRequest
0 голосов
/ 09 декабря 2018

Кажется, с моим запросом 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);

Это ошибка, которую я получаю сейчас:

Неустранимая ошибка: Uncaught mysqli_sql_exception: у вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' 12 'в строке 6 в C: \ xampp \ htdocs (A) Book 2.0 \ Bootstrap \ content_function.php: 116 Трассировка стека: # 0 C: \ xampp \ htdocs (A) Книга 2.0 \ Bootstrap \ content_function.php (116): mysqli_query (Объект (mysqli), «ВЫБЕРИТЕ категорию ...») # 1 C: \ xampp \ htdocs (A) Книга 2.0 \ Bootstrap\ readtopic.php (55): countReplies ('1', '2', '12', Object (mysqli)) # 2 {main}, брошенный в C: \ xampp \ htdocs (A) Book 2.0 \ Bootstrap \ content_function.PHP на линии 116

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

В вашем запросе есть ошибки:

  • имена полей должны идти слева от операнда «=», значения - справа

  • значения полей, когда тип строки (что, как я полагаю, имеет место в вашем запросе), должны быть заключены в одинарные кавычки (или, что еще лучше, использовать параметры связывания / этостандарт для передачи значений переменных в 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."'"
);
0 голосов
/ 09 декабря 2018

я думаю, что вы должны использовать идентификаторы / фактические значения, которые вы помещаете в запрос после знака '='.Нравится:

"SELECT category_id, subcatgory_id, topic_id FROM replies WHERE category_id = '.$cid.' 
 AND subcategory_id = '.$scid.' AND topic_id = '.$tid.';");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...