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->returnID, PDO::PARAM_INT, 12);
$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銆