blob: 1230b4f7220e4fb87b26b170f091f6b0be83dc9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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);
}
}
?>
|