Added new (clean) yii boilerplate
This commit is contained in:
43
framework/db/schema/mysql/CMysqlCommandBuilder.php
Normal file
43
framework/db/schema/mysql/CMysqlCommandBuilder.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* CMysqlCommandBuilder class file.
|
||||
*
|
||||
* @author Carsten Brandt <mail@cebe.cc>
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright 2008-2013 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
/**
|
||||
* CMysqlCommandBuilder provides basic methods to create query commands for tables.
|
||||
*
|
||||
* @author Carsten Brandt <mail@cebe.cc>
|
||||
* @package system.db.schema.mysql
|
||||
* @since 1.1.13
|
||||
*/
|
||||
class CMysqlCommandBuilder extends CDbCommandBuilder
|
||||
{
|
||||
/**
|
||||
* Alters the SQL to apply JOIN clause.
|
||||
* This method handles the mysql specific syntax where JOIN has to come before SET in UPDATE statement
|
||||
* and for DELETE where JOIN has to be after FROM part.
|
||||
* @param string $sql the SQL statement to be altered
|
||||
* @param string $join the JOIN clause (starting with join type, such as INNER JOIN)
|
||||
* @return string the altered SQL statement
|
||||
*/
|
||||
public function applyJoin($sql,$join)
|
||||
{
|
||||
if($join=='')
|
||||
return $sql;
|
||||
|
||||
if(strpos($sql,'UPDATE')===0 && ($pos=strpos($sql,'SET'))!==false)
|
||||
return substr($sql,0,$pos).$join.' '.substr($sql,$pos);
|
||||
elseif(strpos($sql,'DELETE FROM ')===0)
|
||||
{
|
||||
$tableName=substr($sql,12);
|
||||
return "DELETE {$tableName} FROM {$tableName} ".$join;
|
||||
}
|
||||
else
|
||||
return $sql.' '.$join;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user