mysql_query

(PHP 3, PHP 4 )

mysql_query -- MySQL kérést küld a szervernek

Leírás

resource mysql_query ( string query [, resource link_identifier])

A mysql_query() függvény kérést küld a megadott kapcsolat-azonosítójú szerver aktív adatbázisához. Ha nem adsz meg link_identifier-t, akkor a legutóbb megnyitott kapcsolatot használja a függvény. Ha nincs nyitva ilyen kapcsolat, akkor a függvény megpróbál nyitni egyet, mintha a mysql_connect() függvényt hívtuk volna paraméterek nélkül.

Megjegyzés: A kérésnek nem szabad pontosvesszővel végződnie.

A SELECT utasításra alkalmazott mysql_query() függvény eredményazonosítóval vagy FALSE-sal tér vissza a kérés végrehajtásától függően. Egyéb esetekben mysql_query() függvény TRUE-val (nemnulla) vagy FALSE-szal tér vissza, attól függően, hogy a kérés teljesítése sikeres volt-e. A TRUE visszatérési érték azt jelenti, hogy a kérés szintaktikailag helyes volt, és lefuttatta a szerver. Az érintett sorok számáról azonban nem mond semmit. Előfordulhat ugyanis, hogy a kérés sikeresen lefutott, de nem érintett egyetlen sort sem, vagy az eredményben egyetlen sor sincs.

A következő kérés szintaktikailag rossz, igy a mysql_query() függvény meghiúsul és FALSE eredményt ad:

Példa 1. mysql_query()

<?php
$eredmeny = mysql_query ("SELECT * WHERE 1=1")
  or die ("Érvénytelen lekérdezés");
?>

Az alábbi kérés szemantikailag helytelen, ha nincs my_col nevű oszlop a my_tbl nevű táblában, így a mysql_query() meghiúsul és FALSE értékkel tér vissza.

Példa 2. mysql_query()

<?php
$eredmeny = mysql_query ("SELECT my_col FROM my_tbl")
    or die ("Érvénytelen kérés");
?>

A mysql_query() függvény akkor is meghiúsul és FALSE értékkel tér vissza, ha nincs megfelelő engedélyed a kérés által hivatkozott táblá(k)hoz.

Feltéve, hogy a kérés sikeres, meghívhatod a mysql_num_rows() függvényt, hogy kiderítsd, hány sort kaptál vissza a SELECT kérésedre, vagy a mysql_affected_rows() függvényt, hogy megtudd hány sort érintett a DELETE, NSERT, REPLACE vagy UPDATE kérésed.

SELECT kérés esetében a mysql_query() függvény egy új eredmény-azonosítót ad vissza, amit később a mysql_fetch_array() vagy más eredménytáblákkal foglalkozó függvénnyel használhatsz. Ha az eredményre már nincs szükség és memóriafóbiád van, akkor a mysql_free_result() függvénnyel a foglalt memóriát felszabadíthatod, normál esetben megvárod a program végét és a memória felszabadul.

Lásd még a mysql_num_rows(), mysql_affected_rows(), mysql_db_query(), mysql_unbuffered_query(), mysql_free_result(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_result(), mysql_select_db() és a mysql_connect() függvényeket!