Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/**
3
 * TSimpleDynamicSql class file.
4
 *
5
 * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
6
 * @link http://www.pradosoft.com/
7
 * @copyright Copyright &copy; 2005-2008 PradoSoft
8
 * @license http://www.pradosoft.com/license/
9
 * @version $Id: TSimpleDynamicSql.php 2541 2008-10-21 15:05:13Z qiang.xue $
10
 * @package System.Data.SqlMap.Statements
11
 */
12
 
13
/**
14
 * TSimpleDynamicSql class.
15
 *
16
 * @author Wei Zhuo <weizho[at]gmail[dot]com>
17
 * @version $Id: TSimpleDynamicSql.php 2541 2008-10-21 15:05:13Z qiang.xue $
18
 * @package System.Data.SqlMap.Statements
19
 * @since 3.1
20
 */
21
class TSimpleDynamicSql extends TStaticSql
22
{
23
	private $_mappings=array();
24
 
25
	public function __construct($mappings)
26
	{
27
		$this->_mappings = $mappings;
28
	}
29
 
30
	public function getPreparedStatement($parameter=null)
31
	{
32
		$statement = parent::getPreparedStatement($parameter);
33
		if($parameter !== null)
34
			$this->mapDynamicParameter($statement, $parameter);
35
		return $statement;
36
	}
37
 
38
	protected function mapDynamicParameter($statement, $parameter)
39
	{
40
		$sql = $statement->getPreparedSql();
41
		foreach($this->_mappings as $property)
42
		{
43
			$value = TPropertyAccess::get($parameter, $property);
44
			$sql = preg_replace('/'.TSimpleDynamicParser::DYNAMIC_TOKEN.'/', $value, $sql, 1);
45
		}
46
		$statement->setPreparedSql($sql);
47
	}
48
}
49