(PHP 5, PHP 7)
mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen.
Objektorientierter Stil
Prozeduraler Stil
Bindet Spalten der Ergebnismenge an Variablen.
Wenn mysqli_stmt_fetch() aufgerufen wird, um Daten abzuholen, dann
legt das MySQL-Client/Server-Protokoll die Daten der gebundenen Spalten in den spezifizierten
Variablen var1, ...
ab.
Hinweis:
Alle Spalten müssen gebunden werden nach dem Aufruf von mysqli_stmt_execute() und vor dem Aufruf von mysqli_stmt_fetch(). Abhängig von den Typen der Spalten, können Variablen automatisch den entsprechenden PHP-Typ annehmen.
Eine Spalte kann jederzeit gebunden oder neu gebunden werden auch dann, wenn ein Ergebnis schon teilweise abgeholt worden ist. Die neue Bindung wird aktiv, wenn das nächste mal mysqli_stmt_fetch() aufgerufen wird.
stmt
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.
var1
Die Variable, die gebunden werden soll.
Gibt bei Erfolg TRUE
zurück. Im Fehlerfall wird FALSE
zurückgegeben.
Beispiel #1 Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* bereite Abfrage vor */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
$stmt->execute();
/* binde Variablen an die Ergebnismenge */
$stmt->bind_result($col1, $col2);
/* hole die Ergebnisse */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}
/* schließe Abfrage */
$stmt->close();
}
/* schließe Verbindung */
$mysqli->close();
?>
Beispiel #2 Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* prüfe die Verbindung */
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* bereite Abfrage vor */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
mysqli_stmt_execute($stmt);
/* binde Variablen an die Ergebnismenge */
mysqli_stmt_bind_result($stmt, $col1, $col2);
/* hole Ergebnisse */
while (mysqli_stmt_fetch($stmt)) {
printf("%s %s\n", $col1, $col2);
}
/* schließe Abfrage */
mysqli_stmt_close($stmt);
}
/* schließe Verbindung */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
AFG Afghanistan ALB Albania DZA Algeria ASM American Samoa AND Andorra