mysql_query
mysql_query
(PHP 3, PHP 4)
mysql_query - отправляет MySQL-запрос/query.
Описание
resource mysql_query (string query [, resource link_identifier [, int result_mode]])
mysql_query() отправляет запрос текущей активной БД на сервере, ассоциированной со специфицированным идентификатором ссылки/link_identifier. Если link_identifier не специфицирован, принимается последняя открытая ссылка. Если такой ссылки нет, функция пытается установить ссылку, как при вызове mysql_connect() без аргументов, и использует её.
Необязательный параметр result_mode может иметь значение MYSQL_USE_RESULT и MYSQL_STORE_RESULT. По умолчанию MYSQL_STORE_RESULT, т.е. результат буферизуется. См. также mysql_unbuffered_query() - это функция противоположного действия.
Примечание: строка запроса не должна заканчиваться точкой с запятой (;).
Только для операторов SELECT, SHOW, EXPLAIN или DESCRIBE функция mysql_query() возвращает идентификатор ресурса, FALSE если запрос не был выполнен корректно. Для других типов SQL-операторов mysql_query() возвращает TRUE при успехе, FALSE при ошибке. Не-FALSE return-значение означает, что запрос был правильным и может быть выполнен на сервере. Она ничего не сообщает о количестве задействованных или возвращаемых рядов. Это отличная возможность для запроса продолжить выполнениt, не задействуя и не возвращая рядов.
Следующий запрос синтаксически неверен, поэтому mysql_query() терпит неудачу и возвращает FALSE:
Пример 1. mysql_query()
|
Следующий запрос семантически неверен, поскольку my_col не является столбцом таблицы my_tbl, поэтому mysql_query() терпит неудачу и возвращает FALSE:
Пример 2. mysql_query()
|
mysql_query() терпит также неудачу и возвращает FALSE, если вы не имеете прав доступа к таблице(-ам), на которую сделана ссылка в запросе.
Приняв, что запрос прошёл, вы можете вызвать mysql_num_rows() для определения количества рядов, возвращаемых оператором SELECT, или mysql_affected_rows() для определения количества рядов, задействованных оператором DELETE, INSERT, REPLACE или UPDATE.
Только для SELECT, SHOW, DESCRIBE или EXPLAIN функция mysql_query() возвращает новый идентификатор результата, который вы передаёте в mysql_fetch_array() и другие функции, работающие с результирующими таблицами. По окончании работы с результирующим набором вы можете освободить ресурсы, ассоциированные с ним, вызвав mysql_free_result(). В то же время память будет освобождаться автоматически по окончании работы скрипта.
См. также mysql_num_rows(), mysql_affected_rows(), mysql_unbuffered_query(), mysql_free_result(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_result(), mysql_select_db() и mysql_connect().