Re: Re: PEAR DB prepare function with postgresql

From: Date: Mon, 14 Jul 2003 22:36:30 +0000
Subject: Re: Re: PEAR DB prepare function with postgresql
References: 1 2  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-6595@lists.php.net to get a copy of this message
how can this be done if, at least for what I have seen, there is on prepare/execute statements in the pgsql extensions? I have seen them in the Informix extensions though. Even farther: DB/pgsql.php doesn't have a prepare function, where DB/oci8.php does (ifx.php also doesn't, but at least it's in the TODO). Any thoughts? I have just sent a mail to the coders of the pgsql extension to see what are there thoughts about these functions that are missing in PHP. On Lun 14 Jul 2003 15:34, Dnorwood wrote: > I've solved the problem I was having calling prepare within a separate > function. PHP passes Object parameters by value, which means that I > was preparing a statement against a copy of my db connection object > ($dbh), not the original. The resolution, of course, is to pass the db > connection object by reference to the prepare (prep_ins_user) function. > > "Dnorwood" <dnorwood@visi.com> wrote in message > news:20030709182014.22546.qmail@pb1.pair.com... > > > I'm encountering the following behavior with PEAR DB prepare and > > execute functions: > > > > This code works. The prepared statement executes as expected. > > > > // create sql statement string > > $ins_sql = 'INSERT INTO foo VALUES (?,?,?,?,?,?)'; > > // prepare sql statements > > $ins_stmt = $dbh->prepare($ins_sql); > > > > $result = $dbh->execute($ins_stmt,$foo_values); > > > > > > This code does not work. > > > > $ins_stmt = User::prep_ins_stmt($dbh); > > $result = $dbh->execute($ins_stmt,$foo_values); > > > > Basically, if I put the prepare() function call in a separate > > function > > that > > > returns the statement handle the execute will not work. The returned > > $result is like this: > > > > object(db_error)(7) { ["error_message_prefix"]=> string(0) "" > > ["mode"]=> int(1) ["level"]=> int(1024) ["code"]=> > > int(-8) > > ["message"]=> string(17) > > "DB > > > Error: invalid" ["userinfo"]=> string(0) "" > > ["callback"]=> NULL } > > > > I've used gettype() and var_dump to ensure that the returned > > statement handle has the same value as the handle generated by the > > successfuly prepare() call in the sub function - int(0). However, > > the fact remains > > that > > > I unless I call the prepare() function in the same function as the > > execute(), the execute() will fail. > > > > Has anyone seen this behavior before? Is this expected? Known? > > > > Thanks for you help. > > > > D -- Porqué usar una base de datos relacional cualquiera, si podés usar PostgreSQL? ----------------------------------------------------------------- Martín Marqués | mmarques@unl.edu.ar Programador, Administrador, DBA | Centro de Telematica Universidad Nacional del Litoral -----------------------------------------------------------------

« previous php.pear.general (#6595) next »