PHP -> Funkcie -> MySQL funkcie PHP -> mysql_query
Syntax
resource mysql_query ( string query [, resource spojeni] )
Popis
Príkaz jazyka PHP
mysql_query -- Pošle MySQL dotaz
mysql_query () Vykoná dotaz na aktuálnom spojení v aktívnej databáze na serveri a vráti identifikátor výsledku. Ak nie je parameter spojeni uvedený, použije posledné otvorené spojenie. Ak sa žiadne otvorené spojenie nenašlo, funkcia sa ho pokúsi vytvoriť použitím východiskových hodnôt funkcie mysql_connect (akoby bola volaná bez parametrov).
Poznámka: Reťazec dotazu by nemal končiť bodkočiarkou.
Len pri použití dotazu typu SELECT je vrátený identifikátor výsledku alebo FALSE ak pri vykonávaní dotazu došlo k chybe. Pri ostatných typoch dotazov mysql_query() vracia TRUE pri úspešnom dotaze alebo FALSE ak dôjde k chybe. Ne-FALSE vrátená hodnota znamená, že dotaz bol vykonaný serverom bez chýb. Táto funkcia nezaznamenáva žiadne údaje o počte ovplyvnených alebo vrátených riadkov. Dá sa len zistiť, či dotaz prebehol v poriadku.
Príklady
Nasledujúci dotaz je syntakticky nesprávny, preto jeho vykonávanie v mysql_query() neprejde a vypíše sa chyba.
Nasledujúci dotaz je významovo správny, takže mysql_query() vráti výsledok:
<?php
$result =
mysql_query("SELECT CURRENT_DATE")
or exit
("Chyba v dotaze: " .
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 aicky na konci běhu skriptu.
Pozri aj
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