commit f8da631e43efa6509a202544346a3fbb3004bfed
parent bdbfadf3a656a42cd783d3427c0b8a70c46e3032
Author: dankert <devnull@localhost>
Date: Thu, 15 Oct 2009 01:39:10 +0200
Korrektur beim Befüllen der SQL-Anweisung mit mehrfach vorkommenden Platzhaltern.
Diffstat:
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/db/postgresql.class.php b/db/postgresql.class.php
@@ -201,17 +201,26 @@ class DB_postgresql
function prepare( $query,$param )
{
$nr = 1;
- $offset = 0;
- foreach( $param as $p)
+ foreach($param as $name=>$unused_a )
{
- foreach( $p as $pos )
+ foreach( $param[$name] as $idx=>$xyz )
{
- $query = substr($query,0,$pos+$offset).'$'.($nr).substr($query,$pos+$offset);
- $offset += strlen((string)$nr)+1;
+ $pos = $param[$name][$idx];
+
+ $query = substr( $query,0,$pos ).'$'.$nr.substr( $query,$pos );
+
+ foreach( $param as $pn=>$par)
+ {
+ foreach( $par as $i=>$p )
+ {
+ if ( $p > $pos )
+ $param[$pn][$i]=$p+strlen((string)$nr)+1;
+ }
+ }
}
- $nr++;
+ $nr++;
}
-
+ //Html::debug($query);
$this->stmtid = md5($query);
$this->prepared = true;