mysqli_query
mysqli->query()
(PHP 5)
mysqli->query() — Végrehajt egy lekérdezést az adatbázison
LeÃrás
Eljárást használó stÃlus:
Objektum-orientált stÃlus (metódus):
Végrehajtja a query paraméterben megadott lekérdezést az adatbázison.
Funkcionálisan, ennek a függvénynek a működése azonos a mysqli_real_query() függvény meghÃvásához, ezt követve vagy a mysqli_use_result() függvény vagy a mysqli_store_result() függvény meghÃvásával.
Paraméterek
- link
-
Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()
- query
-
A kérés karakterláncként.
- resultmode
-
Vagy a MYSQLI_USE_RESULT konstanssal vagy a MYSQLI_STORE_RESULT konstanssal meg lehet adni, a kÃvánt működését a függvénynek. Alapértelmezettként a MYSQLI_STORE_RESULT van beállÃtva.
Ha a MYSQLI_USE_RESULT konstanst használód, minden következÅ‘ hÃvás Commands out of sync hibát fog visszaadni, hacsak nem ha meghÃvod a mysqli_free_result() függvényt.
Visszatérési értékek
Siker esetén TRUE értékkel tér vissza, ellenkező esetben FALSE értéket ad. SELECT, SHOW, DESCRIBE vagy EXPLAIN parancsoknál a mysqli_query() egy objektumot ad vissza.
Példák
Example#1 Objektum-orientált stÃlus
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* kapcsolat ellenőrzése */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Tábla létrehozása, nem ad vissza eredményhalmazt */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
printf("Table myCity successfully created.\n");
}
/* A SELECT lekérdezések adnak vissza eredményhalmazt */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* halmaz feldolgozása, felszabadÃtása */
$result->close();
}
/* Ha nagy mennyiségű adatot várunk, használjuk a MYSQLI_USE_RESULT konstanst */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {
/* Megjegyzés: nem lehet meghÃvni olyan függvényeket, amik hatnak a szerverre addig,
amÃg be nem zártuk az eredményhalmazt. Minden hÃvás
'out of sync' hibát fog visszaaadni */
if (!$mysqli->query("SET @a:='this will not work'")) {
printf("Error: %s\n", $mysqli->error);
}
$result->close();
}
$mysqli->close();
?>
Example#2 Eljárást használó stÃlus
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* kapcsolat ellenőrzése */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Tábla létrehozása, nem ad vissza eredményhalmazt */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
printf("Table myCity successfully created.\n");
}
/* A SELECT lekérdezések adnak vissza eredményhalmazt */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.\n", mysqli_num_rows($result));
/* halmaz feldolgozása, felszabadÃtása */
mysqli_free_result($result);
}
/* Ha nagy mennyiségű adatot várunk, használjuk a MYSQLI_USE_RESULT konstanst */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {
/* Megjegyzés: nem lehet meghÃvni olyan függvényeket, amik hatnak a szerverre addig,
amÃg be nem zártuk az eredményhalmazt. Minden hÃvás
'out of sync' hibát fog visszaaadni */
if (!mysqli_query($link, "SET @a:='this will not work'")) {
printf("Error: %s\n", mysqli_error($link));
}
mysqli_free_result($result);
}
mysqli_close($link);
?>
A fenti példa a következő kimenetet adja:
Table myCity successfully created. Select returned 10 rows. Error: Commands out of sync; You can't run this command now