mysql_query
(PHP 4, PHP 5, PECL mysql:1.0)
mysql_query — MySQL kérést küld a szervernek
LeÃrás
A mysql_query() függvény egy egyedüli kérést küld (összetett kérés nem engedélyezett) a link_identifier paraméterben megadott 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
Example#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());
}
?>
Example#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);
?>