PHP Doku:: Stellt einen SQL-Befehl zur Ausführung bereit - function.odbc-prepare.html

Verlauf / Chronik / History: (50) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAbstraktionsebenenODBC (Unified)ODBC Funktionenodbc_prepare

Ein Service von Reinhard Neidl - Webprogrammierung.

ODBC Funktionen

<<odbc_pconnect

odbc_primarykeys>>

odbc_prepare

(PHP 4, PHP 5)

odbc_prepare Stellt einen SQL-Befehl zur Ausführung bereit

Beschreibung

int odbc_prepare ( int $connection_id , string $query_string )

Liefert bei einem Fehler FALSE zurück.

Gibt eine ODBC-Ergebniskennung zurück, wenn der SQL-Befehl erfolgreich bereitgestellt wurde. Die Ergebniskennung kann später zur Ausführung des Befehles mit odbc_execute() genutzt werden.


4 BenutzerBeiträge:
- Beiträge aktualisieren...
brad dot westness at gmail dot com
4.10.2010 19:39
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());
?>
Ron
30.08.2007 23:33
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.
bslorence
7.12.2006 22: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
}
?>
Marek
16.12.2004 9: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));



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)