Popis
resource
mysql_query ( string query [, resource spojeni])
mysql_query() Provede dotaz na aktuálním spojení v
aktivní databázi na serveru a vrátí identifikátor výsledku. Není-li
parametr spojeni uveden, použije posledně otevřené
spojení. Pokud není žádné otevřené spojení nalezeno, funkce se ho pokusí
vytvořit za použití výchozích hodnot funkce mysql_connect()
(jakoby byla volána bez parametrů)
Poznámka:
Řetězec dotazu by neměl končit středníkem.
Pouze při použití dotazu typu SELECT je vrácen identifikátor výsledku či
FALSE pokud při vykonávání dotazu došlo k chybě. Při ostatních typech dotazů
mysql_query() vrací TRUE při úspěšném dotazu nebo
FALSE dojde-li k chybě. Ne-FALSE vrácená hodnota znamená, že dotaz byl
vykonán serverem bez chyb. Tato funkce nezaznamenává žádné údaje o počtu
ovlivněných nebo vrácených řádků. Lze pouze zjistit, zda dotaz proběhl v
pořádku.
Následující dotaz je syntakticky nesprávný, takže jeho vykonávání v
mysql_query() selže a vrátí FALSE:
Příklad 1. mysql_query() <php
$result = mysql_query("SELECT * WHERE 1=1")
or die("Špatný dotaz!");
?> |
|
Následující dotaz je významově nesprávný
my_col není sloupec v tabulce
my_tbl, takže mysql_query()
selže a vrátí FALSE:
Příklad 2. mysql_query() <?php
$result = mysql_query("SELECT my_col FROM my_tbl")
or exit ("Špatný dotaz!");
?> |
|
mysql_query() také vždy selže a vrátí FALSE
jestliže nemáte dostatečné oprávnění přístupu do tabulky (tabulek)
uvedených v dotazu.
Potřebujete-li zjistit počet záznamů vrácených dotazem typu SELECT,
použijte následně funkci mysql_num_rows() či případně funkci
mysql_affected_rows(), pokud potřebujete zjistit počet všech
ovlivněných záznamů dotazy typů DELETE, INSERT, REPLACE nebo UPDATE.
Pouze při dotazu typu SELECT mysql_query()
vrací nový identifikátor dotazu, který lze použít například pro volání
funkce mysql_fetch_array() a dalších funkcí pro zpracování
výsledků dotazu. Nepotřebujete-li již obsah výsledku dotazu, můžete uvolnit
pamět voláním funkce mysql_free_result(). Nicméně pamět bude
stejně uvolněna automaticky na konci běhu skriptu.
Viz. také: 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(), a
mysql_connect().