Учебник РНР
Назад Вперёд

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()
<php $result = mysql_query("SELECT * WHERE 1=1") or die("Invalid query"); ?>

Следующий запрос семантически неверен, поскольку my_col не является столбцом таблицы my_tbl, поэтому mysql_query() терпит неудачу и возвращает FALSE :

Пример 2. mysql_query()
<?php $result = mysql_query("SELECT my_col FROM my_tbl") or die ("Invalid 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() .


Назад Оглавление Вперёд
mysql_ping Вверх mysql_real_escape_string