blob: 7902146dfd6560f957f5532f122c595757d8ded1 (
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?php
/**
* TMysqlMetaData class file.
*
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
* @version $Id$
* @package System.Data.ActiveRecord.Vendor
*/
Prado::using('System.Data.ActiveRecord.Vendor.TDbMetaDataCommon');
/**
* TMysqlMetaData specialized command builder for Mysql database.
*
* @author Wei Zhuo <weizho[at]gmail[dot]com>
* @version $Id$
* @package System.Data.ActiveRecord.Vendor
* @since 3.1
*/
class TMysqlMetaData extends TDbMetaDataCommon
{
/**
* Build the SQL search string from the criteria object for Postgress database.
* @param TActiveRecordCriteria search criteria.
* @return string SQL search.
*/
protected function getSqlFromCriteria(TActiveRecordCriteria $criteria)
{
$sql = '';
if(($condition = $criteria->getCondition())!==null)
$sql .= $condition;
$orders=array();
foreach($criteria->getOrdersBy() as $by=>$ordering)
$orders[] = $by.' '.$ordering;
if(count($orders) > 0)
$sql .= ' ORDER BY '.implode(', ', $orders);
if(($limit = $criteria->getLimit())!==null)
{
$offset = $criteria->getOffset();
$offset = $offset===null?0:$offset;
$sql .= ' LIMIT '.$offset.', '.$limit;
}
return strlen($sql) > 0 ? ' WHERE '.$sql : '';
}
}
?>
|