diff options
author | wei <> | 2006-07-23 11:11:21 +0000 |
---|---|---|
committer | wei <> | 2006-07-23 11:11:21 +0000 |
commit | cbb7a11179b9c1c46e35f04d07d6386a44e400b2 (patch) | |
tree | dacfc2a5fdbcce3973e228eaca8002ff799e45d1 /framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php | |
parent | c0d9d27f16bae2e428225302da144e9cc6d4adc8 (diff) |
Update time-tracker demo and add simple dynamic SQLMap
Diffstat (limited to 'framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php')
-rw-r--r-- | framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php b/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php new file mode 100644 index 00000000..1230b4f7 --- /dev/null +++ b/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php @@ -0,0 +1,32 @@ +<?php
+
+class TSimpleDynamicSql extends TStaticSql
+{
+ private $_mappings=array();
+
+ public function __construct($mappings)
+ {
+ $this->_mappings = $mappings;
+ }
+
+ public function getPreparedStatement($parameter=null)
+ {
+ $statement = parent::getPreparedStatement($parameter);
+ if($parameter !== null)
+ $this->mapDynamicParameter($statement, $parameter);
+ return $statement;
+ }
+
+ protected function mapDynamicParameter($statement, $parameter)
+ {
+ $sql = $statement->getPreparedSql();
+ foreach($this->_mappings as $property)
+ {
+ $value = TPropertyAccess::get($parameter, $property);
+ $sql = preg_replace('/'.TSimpleDynamicParser::DYNAMIC_TOKEN.'/', $value, $sql, 1);
+ }
+ $statement->setPreparedSql($sql);
+ }
+}
+
+?>
\ No newline at end of file |