Yii Framework v1.1.10 绫诲弬鑰

COciCommandBuilder

system.db.schema.oci
缁ф壙 class COciCommandBuilder » CDbCommandBuilder » CComponent
鐗堟湰 $Id: COciCommandBuilder.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/db/schema/oci/COciCommandBuilder.php
COciCommandBuilder鎻愪緵涓烘暟鎹〃鍒涘缓鏌ヨ璇彞鐨勫熀鏈柟娉曘

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
dbConnection CDbConnection database connection. CDbCommandBuilder
returnID integer 鏈鍚庝竴娆℃彃鍏D銆 COciCommandBuilder
schema CDbSchema the schema for this command builder. CDbCommandBuilder

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() CDbCommandBuilder
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
applyCondition() Alters the SQL to apply WHERE clause. CDbCommandBuilder
applyGroup() Alters the SQL to apply GROUP BY. CDbCommandBuilder
applyHaving() Alters the SQL to apply HAVING. CDbCommandBuilder
applyJoin() Alters the SQL to apply JOIN clause. CDbCommandBuilder
applyLimit() 鏀瑰彉SQL璇彞浠ュ簲鐢↙IMIT鍜孫FFSET銆 COciCommandBuilder
applyOrder() Alters the SQL to apply ORDER BY. CDbCommandBuilder
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
bindValues() Binds parameter values for an SQL command. CDbCommandBuilder
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
createColumnCriteria() Creates a query criteria with the specified column values. CDbCommandBuilder
createCountCommand() Creates a COUNT(*) command for a single table. CDbCommandBuilder
createCriteria() Creates a query criteria. CDbCommandBuilder
createDeleteCommand() Creates a DELETE command. CDbCommandBuilder
createFindCommand() Creates a SELECT command for a single table. CDbCommandBuilder
createInCondition() Generates the expression for selecting rows of specified primary key values. CDbCommandBuilder
createInsertCommand() 鍒涘缓INSERT鍛戒护銆 COciCommandBuilder
createPkCondition() Generates the expression for selecting rows of specified primary key values. CDbCommandBuilder
createPkCriteria() Creates a query criteria with the specified primary key. CDbCommandBuilder
createSearchCondition() Generates the expression for searching the specified keywords within a list of columns. CDbCommandBuilder
createSqlCommand() Creates a command based on a given SQL statement. CDbCommandBuilder
createUpdateCommand() Creates an UPDATE command. CDbCommandBuilder
createUpdateCounterCommand() Creates an UPDATE command that increments/decrements certain columns. CDbCommandBuilder
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getDbConnection() 杩斿洖database connection. CDbCommandBuilder
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getLastInsertID() 杩斿洖鎸囧畾琛ㄧ殑鏈鍚庝竴娆℃彃鍏D銆 COciCommandBuilder
getSchema() 杩斿洖the schema for this command builder. CDbCommandBuilder
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
createCompositeInCondition() Generates the expression for selecting rows with specified composite key values. CDbCommandBuilder
ensureTable() Checks if the parameter is a valid table schema. CDbCommandBuilder

灞炴ц缁

returnID 灞炴
public integer $returnID;

鏈鍚庝竴娆℃彃鍏D銆

鏂规硶璇︾粏

applyLimit() 鏂规硶
public string applyLimit(string $sql, integer $limit, integer $offset)
$sql string 娌℃湁LIMIT鍜孫FFSET鐨凷QL鏌ヨ瀛楃涓层
$limit integer 鏈澶ц鏁帮紝鑻ヤ负-1鍒欏拷鐣imit銆
$offset integer 琛屼綅绉伙紝鑻ヤ负-1鍒欏拷鐣ffset銆
{return} string 甯︽湁LIMIT鍜孫FFSET鐨凷QL銆
婧愮爜锛 framework/db/schema/oci/COciCommandBuilder.php#43 (鏄剧ず)
public function applyLimit($sql,$limit,$offset)
{
    if ((
$limit 0) and ($offset 0)) return $sql;

    
$filters = array();
    if(
$offset>0){
        
$filters[] = 'rowNumId > '.(int)$offset;
    }

    if(
$limit>=0){
        
$filters[]= 'rownum <= '.(int)$limit;
    }

    if (
count($filters) > 0){
        
$filter implode(' and '$filters);
        
$filter" WHERE ".$filter;
    }else{
        
$filter '';
    }


    
$sql = <<<EOD
            WITH USER_SQL AS ({$sql}),
               PAGINATION AS (SELECT USER_SQL.*, rownum as rowNumId FROM USER_SQL)
            SELECT *
            FROM PAGINATION
            
{$filter}
EOD;

    return 
$sql;
}

鏀瑰彉SQL璇彞浠ュ簲鐢↙IMIT鍜孫FFSET銆 榛樿瀹炵幇閫傜敤浜嶱ostgreSQL銆丮ySQL鍜孲QLite銆

createInsertCommand() 鏂规硶
public CDbCommand createInsertCommand(mixed $table, array $data)
$table mixed 琛ㄧ粨鏋勶紙CDbTableSchema锛夋垨鑰呰〃鍚嶏紙瀛楃涓诧級銆
$data array 瑕佹彃鍏ョ殑鏁版嵁锛堝垪鍚=>鍒楀硷級銆傝嫢鏌愰敭涓嶆槸涓涓湁鏁堢殑鍒楀悕锛屽垯鐩稿簲鐨勫间細琚拷鐣ャ
{return} CDbCommand insert鍛戒护
婧愮爜锛 framework/db/schema/oci/COciCommandBuilder.php#81 (鏄剧ず)
public function createInsertCommand($table,$data)
{
    
$this->ensureTable($table);
    
$fields=array();
    
$values=array();
    
$placeholders=array();
    
$i=0;
    foreach(
$data as $name=>$value)
    {
        if((
$column=$table->getColumn($name))!==null && ($value!==null || $column->allowNull))
        {
            
$fields[]=$column->rawName;
            if(
$value instanceof CDbExpression)
            {
                
$placeholders[]=$value->expression;
                foreach(
$value->params as $n=>$v)
                    
$values[$n]=$v;
            }
            else
            {
                
$placeholders[]=self::PARAM_PREFIX.$i;
                
$values[self::PARAM_PREFIX.$i]=$column->typecast($value);
                
$i++;
            }
        }
    }

    
$sql="INSERT INTO {$table->rawName} (".implode(', ',$fields).') VALUES ('.implode(', ',$placeholders).')';

    if(
is_string($table->primaryKey) && ($column=$table->getColumn($table->primaryKey))!==null && $column->type!=='string')
    {
        
$sql.=' RETURNING '.$column->rawName.' INTO :RETURN_ID';
        
$command=$this->getDbConnection()->createCommand($sql);
        
$command->bindParam(':RETURN_ID'$this->returnIDPDO::PARAM_INT12);
        
$table->sequenceName='RETURN_ID';
    }
    else
        
$command=$this->getDbConnection()->createCommand($sql);

    foreach(
$values as $name=>$value)
        
$command->bindValue($name,$value);

    return 
$command;
}

鍒涘缓INSERT鍛戒护銆

getLastInsertID() 鏂规硶
public mixed getLastInsertID(mixed $table)
$table mixed 琛ㄧ粨鏋勶紙CDbTableSchema锛夋垨鑰呰〃鍚嶏紙瀛楃涓诧級銆
{return} mixed 鏈鍚庝竴娆℃彃鍏D銆傝嫢娌℃湁搴忓垪鍚嶏紝鍒欒繑鍥瀗ull銆
婧愮爜锛 framework/db/schema/oci/COciCommandBuilder.php#30 (鏄剧ず)
public function getLastInsertID($table)
{
    return 
$this->returnID;
}

杩斿洖鎸囧畾琛ㄧ殑鏈鍚庝竴娆℃彃鍏D銆

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.