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.
odbc_prepare
(PHP 4, PHP 5)
odbc_prepare — Prepara um comando para execução
Descrição
Retorna FALSE em caso de erro.
Retorna um identificador de resultado ODBC se o comando SQL foi preparado de modo bem sucedido. O identificador de resultado pode ser executado posteriormente para executar o comando com odbc_execute().
Alguns bancos de dados (como IBM DB2, MS SQL Server, e Oracle) suportam stored procedures que aceitam parâmetros do tipo IN, INOUT, e OUT como definido pela especificação ODBC. Entretanto, o Unified ODBC driver atualmente suporta apenas parâmetros do tipo IN em stored procedures.
No seguinte código, $res será válido apenas se todos os três parâmetros em myproc forem parâmetros IN:
<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$res = odbc_execute($stmt, array($a, $b, $c));
?>
Se você precisar usar um stored procedure usando parâmetros INOUT ou OUT, a alternativa é usar a extensão nativa para o seu banco de dados (por exemplo, mssql para MS SQL Server, ou oci8 para Oracle).
odbc_prepare
30-Aug-2007 07:33
07-Dec-2006 07:50
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
}
?>
16-Dec-2004 06:59
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));
