Я использую функцию PHP mysqli_query
для запуска запроса SELECT
.
Что возвращает mysqli_query
если запрос выполняется успешно, но запрос не находит совпадений?
В руководстве :
Возвращает FALSE при ошибке. Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект mysqli_result. Для других успешных запросов mysqli_query () вернет TRUE.
Запрос, который запускает, но не возвращает никаких результатов, по-прежнему считается «успешным запросом», поскольку запрос выполнялся в базе данных, а пустой набор результатов – законный ответ. Это означает, что запрос все равно вернет объект mysqli_result
, и если вы проверите его количество строк (либо через $result->num_rows
в объектно-ориентированном стиле, либо в mysqli_num_rows($result)
в процедурном стиле), он вернет 0.
Объект Mysqli_query
, чем вы можете использовать mysqli_num_rows для подсчета числа возвращаемых строк. Так:
if(mysqli_num_rows($query) > 0 ){ // Do something }
if ($result = $mysqli->query("SELECT * FROM data")) { $count = $result->num_rows; printf("Result set has %d rows.\n", $count); $result->close(); }
Из справки :
Возвращает FALSE при ошибке. Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект mysqli_result. Для других успешных запросов mysqli_query () вернет TRUE.