Руководство по PHP
Пред. |  | След.

# mysql_query

(PHP 3, PHP 4, PHP 5)

mysql_query -- Посылает запрос MySQL

## Описание

resource mysql_query ( string query [, resource link_identifier] )

mysql_query() посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Если параметр link_identifier опущен, используется последнее открытое соединение. Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql_connect() без параметров. Результат запроса буфферизируется.

> Замечание: Строка запроса НЕ должна заканчиваться точкой с запятой.

Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или `FALSE` если запрос не был выполнен. В остальных случаях, mysql_query() возвращает `TRUE` в случае успешного запроса и `FALSE` в случае ошибки. Значение не равное `FALSE` говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.

Следующий запрос составлен неправильно и mysql_query() вернёт `FALSE`:

Пример 1. Пример использования mysql_query()

`<php $result = mysql_query("SELECT * WHERE 1=1") or die("Invalid query: " . mysql_error()); ?>`

Следующий запрос ошибочен, если колонки 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_error()); ?>`

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