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