View file system/db/schema/mysql/CMysqlCommandBuilder.php

File size: 1.04Kb
<?php
/**
 * CMysqlCommandBuilder class file.
 *
 * @author Carsten Brandt <[email protected]>
 * @link http://www.yiiframework.com/
 * @copyright Copyright &copy; 2008-2011 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

/**
 * CMysqlCommandBuilder provides basic methods to create query commands for tables.
 *
 * @author Carsten Brandt <[email protected]>
 * @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
	 * @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);
		else
			return $sql.' '.$join;
	}
}