mysql_query

mysql_query -- Wysyła zapytanie do serwera MySQL

Opis

resource mysql_query ( string zapytanie [, resource identyfikator_połączenia [, int typ_wyniku]])

mysql_query( ) wysyła zapytanie do aktywnej bazy na serwerze skojarzonym z podanym identyfikatorem połączenia . Jeżeli identyfikator_połączenia nie został podany , wykorzystywane jest ostatnio otwarte połączenie . Jeżeli żadne połączenie nie jest otwarte , podjęta zostanie próba ustanowienia go , poprzez wywołanie mysql_connect( ) bez argumentów .

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( ) .

Notatka : 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( ) .