Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

mysqli_query

MySQLi Funktionen

    Befehl:
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

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


    Parameter-Liste:
NameBeschreibung
linkNur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
queryDie Abfrage, als String.
Dieser Parameter kann eine oder mehrere Parametermarken in der SQL-Anweisung sind durch Fragezeichen (?) Zeichen Einbettung an den entsprechenden Stellen.
resultmodeEntweder die Konstante MYSQLI_USE_RESULT oder MYSQLI_STORE_RESULT je nach dem gewünschten Verhalten. Standardmäßig MYSQLI_STORE_RESULT verwendet wird.
Wenn Sie MYSQLI_USE_RESULT alle weiteren Anrufe werden Fehler out of sync Befehle, wenn Sie a href rufen mysqli_free_result()
Mit MYSQLI_ASYNC (verfügbar mit mysqlnd), ist es möglich, Abfrage asynchron durchzuführen. mysqli_poll() wird dann verwendet, um Ergebnisse aus solchen Fragen zu bekommen.

    Rückgabewerte:
Return FALSE im Fehlerfall. Für eine erfolgreiche SELECT, SHOW, DESCRIBE oder EXPLAIN-Abfragen mysqli_query() wird eine Rückkehr MySQLi_Result-Objekt. Für andere erfolgreiche Anfragen mysqli_query() wird zurückkehren TRUE.

    Beschreibung:
Führt eine Abfrage für die Datenbank.
Für Nicht-DML-Abfragen (nicht INSERT, UPDATE oder DELETE), ist diese Funktion ähnlich Aufruf mysqli_real_query() mysqli_use_result() oder folgen mysqli_store_result().
In dem Fall, in dem Sie eine Erklärung mysqli_query() ist, dass mehr als max_allowed_packet des Servers, der zurück Fehler passieren Codes sind unterschiedlich, je nachdem, ob Sie MySQL-Native-Treiber (mysqlnd) oder MySQL-Client-Bibliothek (libmysqlclient) werden. Das Verhalten ist wie folgt:
 
  • mysqlnd auf Linux gibt einen Fehlercode 1153. Die Fehlermeldung bedeutet " bekam ein Paket grösser als max_allowed_packet Bytes".
  • mysqlnd auf Windows gibt einen Fehlercode 2006. Diese Fehlermeldung bedeutet "Server hat sich gegangen".
  • libmysqlclient auf allen Plattformen gibt einen Fehlercode 2006. Diese Fehlermeldung bedeutet "Server hat sich verabschiedet".


    Aktiv in Version:
(PHP 5, PHP 7)

    Siehe auch:
Führt eine SQL-Abfrage
 
Führt eine Abfrage auf die Datenbank
 
Gibt den Speicher mit einem Ergebnis verbunden
 

mysqli_query() - Beispiel: Objektorientierter Stil

(mysqli::query)


Eingabe:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>


Ausgabe:
Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Beschreibung:
Version Beschreibung
5.3.0 Hinzugefügt wurde die Möglichkeit der asynchronen Abfragen.
mysqli_query() - Beispiel 2: Prozeduraler Stil

(mysqli::query)


Eingabe:
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>


Ausgabe:
Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Beschreibung:
Version Beschreibung
5.3.0 Hinzugefügt wurde die Möglichkeit der asynchronen Abfragen.
MySQLi Funktionen