PHP 5.4.31 Released

odbc_prepare

(PHP 4, PHP 5)

odbc_preparePrepara una declaración para su ejecución

Descripción

resource odbc_prepare ( resource $connection_id , string $query_string )

Prepara una declaración para su ejecución. El identificador de resultado se puede usar después para ejecutar la declaración con odbc_execute().

Algunas bases de datos (como IBM DB2, MS SQL Server, y Oracle) soportan procedimientos almacenados que aceptan parámetros de tipo IN, INOUT, y OUT como están definidos por la especificación ODBC. Sin embargo, el controlador ODBC Unificado actualmente sólo soporta parámetros de tipo IN para procedimientos almacenados.

Parámetros

connection_id

El conector identificador ODBC, ver odbc_connect() para más información.

query_string

La declaración de cadena de consulta que va a ser preparada.

Valores devueltos

Devuelve un identificador de resultado ODBC si el comando SQL se preparó con éxito. Devuleve FALSE si se produjo un error.

Ejemplos

Ejemplo #1 Ejemplo de odbc_execute() y odbc_prepare()

En el siguiente código, $éxito sólo será TRUE si todos los parámetros de miproc son parámetros IN:

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

Si se necesita llamar a un procedimiento almacenado usando parámetros INOUT o OUT, la solución recomendada es usar una extensión nativa para la base de datos (por ejemplo, mssql para MS SQL Server, o oci8 para Oracle).

Ver también

add a note add a note

User Contributed Notes 3 notes

up
1
bslorence
7 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
9 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
Ron
6 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