Re: DB:: query versus prepare

From: Date: Fri, 16 Jan 2004 21:57:37 +0000
Subject: Re: DB:: query versus prepare
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-10194@lists.php.net to get a copy of this message
Mensaje citado por Ross Becker <rbecker@extremenetworks.com>: > I've RTFM on the DB:: class, but I'm running into a problem using it. > > I'm attempting to do an update in an SQL table. If I use "prepare", > everything works fine. If I use "query", it does not appear to bind the > variables into the statement. > > WORKS: > $sql = "update testdb_user_levels set " . > "level_number = ?, level_desc = ? where level_id = ?"; > $sth = $dbh->prepare( $sql ); > $result = $dbh->execute( $sth, array( $level_number, $level_desc, > $level_id ) ); > if (DB::isError($result)) > . > . > > > FAILS: > $sql = "update testdb_user_levels set " . > "level_number = ?, level_desc = ? where level_id = ?"; > $result = $dbh->query( $sql, array( $level_number, $level_desc, > $level_id ) ); > if (DB::isError($result)) You need more knowledge on what is a prepared query. Short: When you use $db->query($sql) you are executing the query all together, without preparation, so you can't use "?" for a later execution. Remember that when you do a $db->execute() you are giving values for all the "?" you put in the prepare statement. -- select 'mmarques' || '@' || 'unl.edu.ar' AS email; --------------------------------------------------------- Martín Marqués | Programador, DBA Centro de Telemática | Administrador Universidad Nacional del Litoral ---------------------------------------------------------

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