Auch Prepared Statements können mit MySQLi ausgeführt werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $sql = new mysqli("localhost", "benutzer", "passwort", "demodatenbank"); if (mysqli_connect_errno()) { echo("Verbindungsproblem: ". mysqli_connect_error()); exit(); } $wert = 'wichtig'; if ($ausdruck = $sql->prepare("SELECT * FROM tabelle WHERE spalte1=?")) { $ausdruck->bind_param("s", $wert); $ausdruck->execute(); $ausdruck->bind_result ($id,$spalte1,$spalte2,$spalte3); $ausdruck->fetch(); echo ("$id $spalte1 $spalte2 $spalte3"); $ausdruck->close(); } $sql->close(); ?> |
Mit der Funktion prepare()
wird ein vorbereiteter Ausdruck erstellt. An der Stelle, wo später der Wert eingesetzt wird, befindet sich ein Fragezeichen (?
). Mit Hilfe der Funktion bind_param()
wird der Wert $wert
an den Parameter gebunden. Der erste Parameter s
stellt hier den Typ des Parameters da. Weitere Typen sind i
für Integer, d
für Double-Werte oder b
für binäre Blobs. Mit execute()
wird das Statement ausgeführt. Mit bind_result()
können die Werte des Ergebnisses gebunden werden. Nach einem fetch()
stehen diese Werte in diesen Variablen.