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