PHP 7.1.20 Released

odbc_prepare

(PHP 4, PHP 5, PHP 7)

odbc_prepareBereitet eine Anweisung für die Ausführung vor

Beschreibung

resource odbc_prepare ( resource $connection_id , string $query_string )

Bereitet eine Anweisung für die Ausführung vor. Die Ergebniskennung kann später verwendet werden, um die Anweisung mit odbc_execute() auszuführen.

Einige Datenbanken (wie beispielsweise IBM DB2, MS SQL Server und Oracle) unterstützen gespeicherte Prozeduren, die Parameter vom Typ IN, INOUT und OUT akzeptieren können, wie von der ODBC-Spezifikation definiert. Allerdings unterstützt der Unified ODBC Treiber zurzeit nur Parameter vom Typ IN für gespeicherte Prozeduren.

Parameter-Liste

connection_id

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

query_string

Die Abfrage-Anweisung, die vorbereitet werden soll, als Zeichenkette.

Rückgabewerte

Gibt eine ODBC-Ergebniskennung zurück, wenn das SQL-Kommando erfolgreich vorbereitet wurde. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 odbc_execute() und odbc_prepare() Beispiel

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 mssql für MS SQL Server oder oci8 für Oracle).

Siehe auch

add a note add a note

User Contributed Notes 3 notes

up
11
bslorence
11 years ago
Is it just me or is the code above misleading? It makes it look like odbc_execute() returns a resource suitable, say, for passing to one of the odbc_fetch_* functions.

In fact, odbc_execute() returns a boolean, which simply indicates success (TRUE) or failure (FALSE). The variable to pass to odbc_fetch_* is the same one that you pass to odbc_execute():

<?php
$res
= odbc_prepare($db_conn, $query_string);
if(!
$res) die("could not prepare statement ".$query_string);

if(
odbc_execute($res, $parameters)) {
   
$row = odbc_fetch_array($res);
} else {
   
// handle error
}
?>
up
2
Marek
13 years ago
Use this example for IBM DB/2:

$q = "update TABLE set PASS=? where NAME=?";
$res = odbc_prepare ($con, $q);

$a = "secret"; $b="user";
$exc = odbc_execute($res, array($a, $b));
up
-18
Ron
10 years ago
odbc_exec() returns BOOLEAN if the query doesn't return a result set.

If the query returns a result set, odbc_exec() returns a resource to that result set.
To Top