Проверить пусто выбрать в sqlite? - PullRequest
2 голосов
/ 05 февраля 2012

Как я могу проверить результат моего запроса?Я пытаюсь это сделать, но когда результат пуст - ошибка не отображается.

$result = sqlite_query($db, "SELECT * FROM catalog WHERE cat=".$_GET["cat"]." AND size".$size.""); 
        if($result !== 0) {
            while ($row = sqlite_fetch_array($result)) { 
                echo '<img src="'.$row['img1'].'" alt="'.$row['id'].'" />'."\r\n"; 
            } 
        } else {
            err2();
        }

Ответы [ 3 ]

1 голос
/ 05 февраля 2012

Обратите внимание, что sqlite_fetch_array() возвращает дескриптор результата, а не количество строк, поэтому не следует сравнивать его с нулем:

Эта функция вернет дескриптор результатаили FALSE при ошибке.

Используйте sqlite_num_rows() для определения количества возвращаемых строк, например,

if(sqlite_num_rows($result) !== 0) {
  ...
} else {
  ...
}

Обратите внимание, что вы не должны использовать user-предоставил данные, напрямую включив их в SQL-запрос, так как он допускает SQL-инъекции .Кроме того, убедитесь, что содержимое вашей базы данных, особенно значения в столбцах img1 и id, правильно экранированы, иначе вы рискуете быть уязвимыми для XSS-атак .

1 голос
/ 05 февраля 2012

Смотрит на http://php.net/manual/en/function.sqlite-num-rows.php

$rows = sqlite_num_rows($result);

, где $ строк будет 0, если результат будет пустым

1 голос
/ 05 февраля 2012

Вы можете проверить количество возвращаемых строк, используя функцию sqlite_num_rows ()

http://www.php.net/manual/en/function.sqlite-num-rows.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...