Описание
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().