PHP kézikönyv
Előző |  | Következő

# mysql_query

(PHP 3, PHP 4, PHP 5)

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 egy kérést küld a megadott kapcsolat-azonosítójú (link_identifier) szerver aktív adatbázisához.

## Paraméterek

query

  Egy SQL kérés

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

link_identifier

  A MySQL kapcsolat. Ha a kapcsolatazonosító nincs megadva, akkor az utólsó mysql_connect()-el megnyitott kapcsolatot használja. Ha nem talál semmilyen kapcsolatot, megpróbál létrehozni egyet úgy, mintha a mysql_connect() paraméterek nélkül lett volna meghívva. Ha esetleg semmilyen kapcsolatot nem talál és nem is sikerül létrehoznia, akkor egy `E_WARNING` szintű figyelmeztetés generálódik.

## Visszatérési értékek

A SELECT utasításra alkalmazott mysql_query() függvény siker esetén egy erőforrással tér vissza, hiba esetén pedig `FALSE`-al.

Más típusú SQL utasítások esetében, mint pl. UPDATE, DELETE, DROP, stb, a mysql_query() függvény sikeres végrehajtás esetén `TRUE`-val tér vissza, hiba esetén pedig `FALSE`-al.

A visszaadott eredmény feldogozása céljából a kapott erőforrás átadható a mysql_fetch_array() függvénynek, vagy egyéb függvényeknek, amelyek eredményhalmazzal dolgoznak.

Használd a mysql_num_rows() függvényt a SELECT utasítás által visszaadott sorok számának lekérdezésére vagy a mysql_affected_rows() függvényt arra, hogy megtudd, hány sort érintett a DELETE, INSERT, REPLACE, vagy UPDATE utasítá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.

## Példák

Példa 1. Helytelen lekérdezés A következő kérés szintaktikailag rossz, igy a mysql_query() függvény meghiúsul és `FALSE` eredményt ad
`<?php $eredmeny = mysql_query ("SELECT * WHERE 1=1"); if (!$eredmeny) { die('Érvénytelen lekérdezés:' . mysql_error()); } ?>`

Példa 2. Helyes lekérdezés Az alábbi lekérdezés helyes, így a mysql_query() egy erőforrást ad vissza.
`<?php // Ezt például a felhasználó is megadhatja $csaladnev = 'Marha'; $keresztnev = 'Józsi'; // Kérés összeállítása // Ez a legjobb módja egy SQL lekérdezés végrehajtásának // Több példát a mysql_real_escape_string() -nél találsz $keres = sprintf("SELECT csaladnev, keresztnev, lakcim, kor FROM baratok WHERE keresztnev='%s' AND csaladnev='%s'", mysql_real_escape_string($csaladnev), mysql_real_escape_string($keresztnev)): // Kérés végrehajtása $eredmeny = mysql_query($keres); // Eredmény elemzése // Ez kiírja a MySQL-nek küldött kérést valamint a hibát. Hasznos hibakaresés céljából. if (!$eredmeny) { $uzenet = 'Helytelen lekérdezés: ' . mysql_error() . "\n"; $uzenet .= 'A lekérdezés: ' . $keres; die($uzenet); } // Eredmény felhasználása // Ha megpróbálnád kiiratni az $eredmeny-t, nem írná ki az erőforrásban lévő adatokat // Egy mysql eredményfüggvényt kell használni // Lásd még: mysql_result(), mysql_fetch_array(), mysql_fetch_row(), stb. while ($sor = mysql_fetch_assoc($eredmeny)) { echo $sor['csaladnev']; echo $sor['keresztnev']; echo $sor['lakcim']; echo $sor['kor']; } // Az eredményhalmaz által lefoglalt erőforrást fel kell szabadítani // Ez automatikusan megtörténne a szkript futásának végén mysql_free_result($eredmeny); ?>`

## Lásd még

mysql_connect()
mysql_error()
mysql_real_escape_string()
mysql_result()
mysql_fetch_assoc()
mysql_unbuffered_query()

Előző | Tartalom | Következő
mysql_ping | Fel | mysql_real_escape_string