Forum und email

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:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode ] )

Objektum-orientált stílus (metódus):

mysqli
mixed query ( string $query [, int $resultmode ] )

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