downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

odbc_primarykeys> <odbc_pconnect
[edit] Last updated: Fri, 14 Jun 2013

view this page in

odbc_prepare

(PHP 4, PHP 5)

odbc_preparePrépare une commande pour l'exécution

Description

resource odbc_prepare ( resource $connection_id , string $query_string )

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_prepare()

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



odbc_primarykeys> <odbc_pconnect
[edit] Last updated: Fri, 14 Jun 2013
 
add a note add a note User Contributed Notes odbc_prepare - [4 notes]
up
0
Ron
5 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.
up
0
bslorence
6 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
0
Marek
8 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
-1
brad dot westness at gmail dot com
2 years ago
When working with MSSQL over FreeTDS, calling a stored procedure that accepts a variable in the following way DOES NOT work:
<?php
$results
= odbc_prepare($conn, "{CALL sp_Test(?)}");
odbc_exec($results, array("some string"));
?>
From what I've gleaned via trial and error, the "some string" never gets sufficiently bound to the ? as the variable input (perhaps because there is no ODBC equivalent to the mssql_bind() method). The stored procedure will always return an SQL Server error code HY000.

The following works for me (although I don't think it's documented anywhere):
<?php
$results
= odbc_prepare($conn, "{CALL sp_Test('some string')}");
odbc_exec($results, array());
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites