Forum und email

mysql_query

(PHP 4, PHP 5, PECL mysql:1.0)

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