(PHP 4, PHP 5)
mysql_query — Посылает запрос MySQL
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().