Forum und email
mysql_query

mysql_query

(PHP 3, PHP 4, PHP 5)

mysql_query -- Pošle MySQL dotaz

Popis

resource mysql_query ( string query [, resource link_identifier] )

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: " . mysql_error());
?>

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_error());
?>

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 dotazech SELECT, SHOW, DESCRIBE nebo EXPLAIN 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().