odbc_prepare

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_preparePredispone un'espressione all'esecuzione

Descrizione

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

Predispone un'espressione all'esecuzione. L'identificativo restituito può essere utilizzato successivamente per eseguire l'espressione utilizzando la funzione odbc_execute().

Alcuni database (tipo IBM DB2, MS SQL Server e Oracle) supportano le stored procedure che accettano parametri di tipo IN, INOUT e OUT come definito nelle specifiche ODBC. Tuttavia il driver Unified ODBC attualmente supporta soltanto i parametri di tipo IN nelle stored procedure.

Elenco dei parametri

connection_id

L'identificativo di connessione ODBC, vedere odbc_connect() per ulteriori dettagli.

query_string

The query che viene predisposta.

Valori restituiti

Restituisce un identificativo di risultato ODBC se l'espressione SQL viene predisposta correttamente. Restituisce false in caso di errore.

Esempi

Example #1 Esempio di odbc_execute() e odbc_prepare()

Nel seguente codice, $success sarà true soltanto se tutti i tre parametri per myproc sono dei parametri IN:

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

Se occorre chiamare una stored procedure che richiede parametri INOUT od OUT, si suggerisce di utilizzare il modulo nativo del database (ad esempio, oci8 per Oracle).

Vedere anche:

add a note add a note

User Contributed Notes 3 notes

up
17
bslorence
15 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
lzsiga at freemail dot c3 dot hu
3 years ago
The resource returned by odbc_prepare can be freed with odbc_free_result.
up
1
Marek
17 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));
To Top