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