Midwest PHP Call For Papers Open

odbc_prepare

(PHP 4, PHP 5, PHP 7)

odbc_preparePrépare une commande pour l'exécution

Description

odbc_prepare ( resource $connection_id , string $query_string ) : resource

Prépare une commande pour l'exécution. L'identifiant peut être utilisé plus tard pour exécuter la commande avec odbc_execute().

Quelques bases de données (comme IBM DB2, MS SQL Server et Oracle) supportent les procédures stockées qui acceptent les types de paramètres IN, INOUT et OUT comme définis dans les spécifications ODBC. Cependant, le driver unifié ODBC supporte actuellement uniquement le type de paramètres IN pour les procédures stockées.

Liste de paramètres

connection_id

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query_string

La requête à préparer.

Valeurs de retour

Retourne un identifiant de résultat ODBC si la commande SQL a été préparée avec succès. Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec odbc_prepare() et odbc_execute()

Dans le code suivant, $res ne sera valide uniquement si les trois paramètres pour myproc sont des paramètres IN :

<?php
$a 
1;
$b 2;
$c 3;
$stmt odbc_prepare($conn'CALL myproc(?,?,?)');
$res  odbc_execute($stmt, array($a$b$c));
?>

Si vous devez appeler une procédure stockée utilisant des paramètres INOUT ou OUT, il est recommandé d'utiliser l'extension native de votre base de données (par exemple, mssql pour MS SQL Server ou oci8 pour Oracle).

Voir aussi

add a note add a note

User Contributed Notes 4 notes

up
14
bslorence
12 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
1
Marek
14 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
0
lzsiga at freemail dot c3 dot hu
6 months ago
The resource returned by odbc_prepare can be freed with odbc_free_result.
up
-17
Ron
12 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