Opis
mysql_query
( string $zapytanie
[, resource $identyfikator_połączenia
[, int $typ_wyniku
]] ) : resource
Opcjonalny argument result_mode
może przyjmować
wartość MYSQL_USE_RESULT lub MYSQL_STORE_RESULT. Domyślnie używana jest
wartość MYSQL_STORE_RESULT, zatem wynik jest buforowany. Odpowiednikiem
użycia drugiej opcji jest funkcja mysql_unbuffered_query().
Informacja:
Zapytanie nie powinno kończyć się znakiem średnika.
mysql_query() zwraca identyfikator wyniku (lub FALSE
w przypadku niepowodzenia) jedynie dla zapytań typu SELECT, SHOW, EXPLAIN
i DESCRIBE.
Dla innych zapytań SQL mysql_query() zwraca TRUE
lub FALSE
informując czy zapytanie zakończyło się sukcesem czy też nie.
Jeśli nie została zwrócona wartość FALSE
to znaczy, że zapytanie było
prawidłowe i może być wykonane przez serwer. Nie mówi natomiast nic o
liczbie przetworzonych lub zwróconych wierszy. Jest również możliwe, że
zapytanie zostanie wykonane poprawnie, nie przetwarzając lub
zwracając żadnych wierszy.
Następujące zapytanie jest niepoprawne składniowo, dlatego
mysql_query() zwróci FALSE
:
Przykład #1 mysql_query()
<?php
$result = mysql_query("SELECT * WHERE 1=1")
or die("Zapytanie niepoprawne");
?>
Następujące zapytanie jest niepoprawne semantycznie, jeżeli
my_col nie jest kolumną w tabeli
my_tbl, dlatego mysql_query()
zwróci FALSE
:
Przykład #2 mysql_query()
<?php
$result = mysql_query("SELECT kolumna FROM tabela")
or die("Zapytanie niepoprawne");
?>
mysql_query() zwróci FALSE
również wtedy, gdy
nie będzie praw dostępu do tabel wyszczególnionych w zapytaniu.
Przyjmując, że zapytanie się powiodło, można użyć
mysql_num_rows() by uzyskać informację o liczbie
wierszy zwróconych w instrukcji SELECT, lub
mysql_affected_rows() w celu uzyskania liczby
wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE.
Jedynie po operacjach SELECT, SHOW, EXPLAIN i DESCRIBE
mysql_query() zwróci identyfikator wyniku, który można
przekazać do funkcji mysql_fetch_array() lub innych
funkcji operujących na tablicach wyników. Po wykonaniu operacji na
wyniku, można zwolnić zasoby przez niego wykorzystywane wywołując
mysql_free_result(). Po zakończeniu działania skryptu
pamięć i tak będzie automatycznie zwolniona.
Patrz także: 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() i
mysql_connect().