2011-12-28 7 views
2

Функция mysql_query в php возвращает TRUE по успеху и FALSE при сбое.mysql_query возвращаемые значения

Мой вопрос - это то, что считается успехом?

Другими словами, то, что возвращается, когда ничего не делается из инструкции SELECT, или если есть UPDATE и ничего, что соответствует пункту WHERE. Возвращает ли он FALSE или что-то вроде пустого ресурса?

Я пытаюсь провести различие между ошибкой db и пустым результатом.

ответ

4

Успех означает «отсутствие ошибок». Получение нулевых строк не является ошибкой.

Edit: Просто проверил manual page и объяснение довольно ясно (не знаю, где вы получили ваши):

Для SELECT, SHOW, DESCRIBE, EXPLAIN и другие операторы возвращения ResultSet, mysql_query () возвращает ресурс с успехом, или FALSE на ошибка.

Для других типов операторов SQL, INSERT, UPDATE, DELETE, DROP и т.д., mysql_query() возвращает значение TRUE в случае успешного завершения или FALSE об ошибке.

+1

Я тоже это прочитал, но я думал, что успех может не включать пустой набор результатов. –

3

TRUE означает отсутствие ошибок.

Если вы хотите узнать количество строк в resultset, используйте: mysql_num_rows($result).

Если это обновление, и вы хотите узнать, изменили ли его использование строки: mysql_affected_rows($result).

+0

WFM. Существует ли простой эквивалент в PDO? –

Смежные вопросы