mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7, PHP 8)

mysqli::prepare -- mysqli_prepareBereitet eine SQL-Anweisung zur Ausführung vor

Beschreibung

Objektorientierter Stil

publicmysqli::prepare(string$query): mysqli_stmt|false

Prozeduraler Stil

mysqli_prepare(mysqli$mysql, string$query): mysqli_stmt|false

Bereitet eine SQL-Abfrage vor und gibt einen Zeiger auf die Anweisung zurück, der für weitere Operationen mit der Anweisung verwendet werden kann. Die Abfrage muss aus einer einzigen SQL-Anweisung bestehen.

Die Anweisungsvorlage darf null oder mehr Fragezeichen-Parametermarker (?) - auch Platzhalter genannt - enthalten. Diese Parametermarker müssen vor der Ausführung der Anweisung mittels mysqli_stmt_bind_param() an Anwendungsvariablen gebunden werden.

Parameter-Liste

mysql

Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.

query

Die Zeichenkette mit der Abfrage. Sie darf nur eine SQL-Anweisung enthalten.

Die SQL-Anweisung darf null oder mehr Platzhalter für Parameter enthalten, die an den entsprechenden Stellen durch Fragezeichen (?) dargestellt werden.

Hinweis:

Die Platzhalter sind nur an bestimmten Stellen einer SQL-Anweisung zulässig. Zum Beispiel sind sie bei einer INSERT-Anweisung in der VALUES()-Liste erlaubt, um die Werte für die Spalten einer Zeile anzugeben, oder bei einer WHERE-Klausel im Vergleich mit einer Spalte, um einen Vergleichswert anzugeben. Nicht zulässig sind sie hingegen für Bezeichner (wie Tabellen- oder Spaltennamen).

Rückgabewerte

mysqli_prepare() gibt ein Anweisungs-Objekt zurück oder false, wenn ein Fehler aufgetreten ist.

Fehler/Exceptions

If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR) and the requested operation fails, a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT, a mysqli_sql_exception is thrown instead.

Beispiele

Beispiel #1 mysqli::prepare()-Beispiel

Objektorientierter Stil

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";


$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");


$stmt->bind_param("s", $city);


$stmt->execute();


$stmt->bind_result($district);


$stmt->fetch();

printf("%s liegt im Bezirk %s\n", $city, $district);

Prozeduraler Stil

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";


$stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?");


mysqli_stmt_bind_param($stmt, "s", $city);


mysqli_stmt_execute($stmt);


mysqli_stmt_bind_result($stmt, $district);


mysqli_stmt_fetch($stmt);

printf("%s liegt im Bezirk %s\n", $city, $district);

Die obigen Bespiele erzeugen folgende Ausgabe:

Amersfoort liegt im Bezirk Utrecht

Siehe auch

To Top