(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_execute — Führt einen vorbereiteten SQL-Befehl aus
Führt eine mit odbc_prepare() vorbereitete Anweisung aus.
statementDas ODBC-Ergebnis-Objekt von odbc_prepare().
params
Parameter in params werden für Platzhalter in
der vorbereiteten Anweisung in der Reihenfolge ihres Vorkommens
eingesetzt. Elemente dieses Array werden zu Zeichenketten konvertiert,
wenn diese Funktion aufgerufen wird.
Jegliche Parameter in params, die mit einfachen
Anführungszeichen beginnen und enden, werden als Name einer Datei
interpretiert, die gelesen und als Daten für den entsprechenden
Platzhalter an den Server gesendet werden.
Soll eine Zeichenkette, die tatsächlich mit einfachen Anführungszeichen beginnt und endet übergeben werden, muss ein Leerzeichen oder ein anderes Zeichen, das kein einfaches Anführungszeichen ist, am Anfang oder Ende der Zeichenkette eingefügt werden, was verhindert, dass der Parameter als Dateiname interpretiert wird. Ist dies keine Option, dann muss ein anderer Mechanismus verwendet werden, um die Zeichenkette zu übergeben, wie z. B. die Abfrage direkt per odbc_exec() auszuführen.
| Version | Beschreibung |
|---|---|
| 8.4.0 | Diese Funktion gibt nun eine Instanz von Odbc\Result zurück; vorher wurde eine Ressource zurückgegeben. |
| 8.0.0 |
Der nicht verwendete Parameter flags wurde entfernt.
|
Beispiel #1 Beispiel für odbc_execute() und odbc_prepare()
Im folgenden Code ist $success nur dann true, wenn
alle drei Parameter für myproc Eingabeparameter (IN) sind:
<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>Wenn eine gespeicherte Prozedur aufgerufen werden soll, die Ein-Ausgabe- (INOUT) oder Ausgabeparameter (OUT) verwendet, wird als Workaround empfohlen, eine native Extension für die jeweilige Datenbank zu verwenden (beispielsweise oci8 für Oracle).