commit 694b70dc5bc0019e863844b63caab049d971fd04
parent 5894b26ee5bcaa65df62e6eada97b9ab03eca848
Author: dankert <devnull@localhost>
Date: Tue, 24 Apr 2007 22:56:02 +0200
Erweiterung um Werteliste f?r WHERE IN (...) Bedingungen.
Diffstat:
1 file changed, 41 insertions(+), 3 deletions(-)
diff --git a/serviceClasses/Sql.class.php b/serviceClasses/Sql.class.php
@@ -160,9 +160,11 @@ class Sql
// Bereits vorhande Parameter setzen.
foreach( $this->data as $name=>$data )
{
- if ( $data['type']=='string' ) $this->setString($name,$data['value'] );
- if ( $data['type']=='int' ) $this->setInt ($name,$data['value'] );
- if ( $data['type']=='null' ) $this->setNull ($name );
+ if ( $data['type']=='string' ) $this->setString ($name,$data['value'] );
+ if ( $data['type']=='stringlist' ) $this->setStringList($name,$data['value'] );
+ if ( $data['type']=='int' ) $this->setInt ($name,$data['value'] );
+ if ( $data['type']=='intlist' ) $this->setIntList ($name,$data['value'] );
+ if ( $data['type']=='null' ) $this->setNull ($name );
}
}
@@ -256,6 +258,23 @@ class Sql
/**
+ * Setzt eine Ganzzahl-Liste als Parameter.<br>
+ *
+ * @param name Name des Parameters
+ * @param values Inhalte
+ */
+ function setIntList( $name,$values )
+ {
+ $this->data[ $name ] = array( 'type'=>'intlist','value'=>$values );
+
+ $values = array_map('intval',$values);
+ $this->setParam($name,implode(',',$values) );
+// $this->query = str_replace( '{'.$name.'}',intval($value),$this->query );
+ }
+
+
+
+ /**
* Setzt eine Zeichenkette als Parameter.<br>
*
* @param name Name des Parameters
@@ -278,6 +297,25 @@ class Sql
/**
+ * Setzt eine Zeichenketten-Liste als Parameter.<br>
+ *
+ * @param name Name des Parameters
+ * @param values Inhalte
+ */
+ function setStringList( $name,$values )
+ {
+ $this->data[ $name ] = array( 'type'=>'stringlist','value'=>$values );
+
+ $values = array_map('addslashes',$values);
+
+ $value = "'".implode("','",$values)."'";
+
+ $this->setParam($name,$value);
+ }
+
+
+
+ /**
* Setzt einen bool'schen Wert als Parameter.<br>
* Ist der Parameterwert wahr, dann wird eine 1 gesetzt. Sonst 0.<br>
*