Yii Framework v1.1.10 绫诲弬鑰

CDbCommand

system.db
缁ф壙 class CDbCommand » CComponent
婧愯嚜 1.0
鐗堟湰 $Id: CDbCommand.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/db/CDbCommand.php
CDbCommand琛ㄧず涓涓拡瀵规暟鎹簱鎵ц鐨凷QL璇彞銆

瀹冮氬父閫氳繃璋冪敤CDbConnection::createCommand鍒涘缓銆 瑕佹墽琛岀殑SQL璇彞鍙互閫氳繃Text璁剧疆銆

瑕佹墽琛屼竴鏉¢潪鏌ヨ鐨凷QL锛堝锛歩nsert锛宒elete锛寀pdate锛夛紝璋冪敤execute銆 瑕佹墽琛屼竴鏉QL璇彞杩斿洖缁撴灉鏁版嵁闆嗭紙濡傦細SELECT锛夛紝 浣跨敤 query 鎴栧畠鐨勭畝渚跨増鏈 queryRowqueryColumn鎴栬queryScalar

濡傛灉涓涓猄QL璇彞杩斿洖缁撴灉锛堟瘮濡備竴涓猄ELECT璇彞锛夛紝 缁撴灉鍙互閫氳繃宸茶繑鍥炵殑CDbDataReader璁块棶銆

CDbCommand鏀寔SQL璇彞棰勫鐞嗗拰鍙傛暟缁戝畾銆 璋冪敤 bindParam 鍘荤粦瀹氫竴涓狿HP鍙橀噺鍒癝QL涓殑涓涓弬鏁般 璋冪敤 bindValue 鍘荤粦瀹氫竴涓煎埌涓涓猄QL鍙傛暟銆 褰撶粦瀹氫竴涓弬鏁版椂锛屾SQL璇彞灏嗚嚜鍔ㄥ噯澶囧ソ銆 浣犱篃鍙互璋冪敤prepare鍘绘槑纭殑鍑嗗涓鏉QL璇彞銆

寮濮嬭嚜鐗堟湰 1.1.6锛孋DbCommand涔熻兘鐢ㄤ綔涓涓煡璇㈢敓鎴愬櫒锛 浠庝唬鐮佺墖鏂缓绔嬩竴鏉QL璇彞銆備緥濡傦細
$user = Yii::app()->db->createCommand()
    ->select('username, password')
    ->from('tbl_user')
    ->where('id=:id', array(':id'=>1))
    ->queryRow();

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
connection CDbConnection 鍜岃繖涓懡浠ょ浉鍏崇殑杩炴帴銆 CDbCommand
distinct boolean 杩斿洖涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ CDbCommand
from string 杩斿洖鏌ヨ鐨 FROM 閮ㄥ垎銆 CDbCommand
group string 杩斿洖鏌ヨ涓殑 GROUP BY 閮ㄥ垎銆 CDbCommand
having string 杩斿洖鏌ヨ鐨凥AVING閮ㄥ垎銆 CDbCommand
join mixed 杩斿洖鏌ヨ鐨刯oin閮ㄥ垎銆 CDbCommand
limit string 杩斿洖鏌ヨ鐨 LIMIT 閮ㄥ垎銆 CDbCommand
offset string 杩斿洖鏌ヨ鐨 OFFSET 閮ㄥ垎銆 CDbCommand
order string 杩斿洖鏌ヨ鐨 ORDER BY 閮ㄥ垎銆 CDbCommand
params array 鍙傛暟锛坣ame=>value锛夎缁戝畾瑕佹煡璇㈢殑褰撳墠璇彞銆 CDbCommand
pdoStatement PDOStatement 杩欎釜鍛戒护搴曞眰鐨凱DOStatement 濡傛灉灏氭湭鍑嗗濂借鍙ワ紝瀹冨彲浠ユ槸null銆 CDbCommand
select string 杩斿洖鏌ヨ鐨凷ELECT閮ㄥ垎銆 CDbCommand
text string 杩斿洖灏嗚鎵ц鐨凷QL璇彞銆 CDbCommand
union mixed 杩斿洖鏌ヨ鐨 UNION 閮ㄥ垎銆 CDbCommand
where string 杩斿洖鏌ヨ鐨刉HERE閮ㄥ垎銆 CDbCommand

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲嚱鏁般 CDbCommand
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__sleep() 褰撳簭鍒楀寲鏃惰鍙ュ0鏄庝负null銆 CDbCommand
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
addColumn() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄鍔犱竴涓柊鐨勬暟鎹垪銆 CDbCommand
addForeignKey() 涓哄凡缁忓瓨鍦ㄧ殑鏁版嵁琛ㄥ垱寤轰竴鏉″閿害鏉熺殑SQL璇彞銆 CDbCommand
alterColumn() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓烘敼鍙樹竴涓垪鐨勫畾涔夈 CDbCommand
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
bindParam() 缁戝畾涓涓弬鏁板埌瑕佹墽琛岀殑璇彞銆 CDbCommand
bindValue() 缁戝畾涓涓煎埌鍙傛暟銆 CDbCommand
bindValues() 灏嗕竴涓垪琛ㄧ殑鍊肩粦瀹氬埌鐩稿簲鍙傛暟銆 CDbCommand
buildQuery() 鐢熸垚涓涓猄QL SELECT璇彞浠庣粰瀹氭煡璇㈣鑼冦 CDbCommand
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
cancel() 鍙栨秷SQL璇彞鐨勬墽琛屻 CDbCommand
createIndex() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垱寤轰竴涓柊绱㈠紩銆 CDbCommand
createTable() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垱寤轰竴涓暟鎹〃銆 CDbCommand
crossJoin() 闄勫姞涓涓狢ROSS JOIN閮ㄥ垎鍒版鏌ヨ銆 CDbCommand
delete() 鍒涘缓骞舵墽琛屼竴鏉 DELETE SQL 璇彞銆 CDbCommand
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
dropColumn() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓暟鎹垪銆 CDbCommand
dropForeignKey() 寤虹珛涓鏉QL璇彞涓哄垹闄や竴涓閿害鏉熴 CDbCommand
dropIndex() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓储寮曘 CDbCommand
dropTable() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓暟鎹〃 CDbCommand
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
execute() 鎵ц姝 SQL 璇彞銆 CDbCommand
from() 璁剧疆鏌ヨ鐨凢ROM閮ㄥ垎銆 CDbCommand
getConnection() 杩斿洖鍜岃繖涓懡浠ょ浉鍏崇殑杩炴帴銆 CDbCommand
getDistinct() 杩斿洖涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ CDbCommand
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getFrom() 杩斿洖鏌ヨ鐨 FROM 閮ㄥ垎銆 CDbCommand
getGroup() 杩斿洖鏌ヨ涓殑 GROUP BY 閮ㄥ垎銆 CDbCommand
getHaving() 杩斿洖鏌ヨ鐨凥AVING閮ㄥ垎銆 CDbCommand
getJoin() 杩斿洖鏌ヨ鐨刯oin閮ㄥ垎銆 CDbCommand
getLimit() 杩斿洖鏌ヨ鐨 LIMIT 閮ㄥ垎銆 CDbCommand
getOffset() 杩斿洖鏌ヨ鐨 OFFSET 閮ㄥ垎銆 CDbCommand
getOrder() 杩斿洖鏌ヨ鐨 ORDER BY 閮ㄥ垎銆 CDbCommand
getPdoStatement() 杩斿洖杩欎釜鍛戒护搴曞眰鐨凱DOStatement 濡傛灉灏氭湭鍑嗗濂借鍙ワ紝瀹冨彲浠ユ槸null銆 CDbCommand
getSelect() 杩斿洖鏌ヨ鐨凷ELECT閮ㄥ垎銆 CDbCommand
getText() 杩斿洖杩斿洖灏嗚鎵ц鐨凷QL璇彞銆 CDbCommand
getUnion() 杩斿洖鏌ヨ鐨 UNION 閮ㄥ垎銆 CDbCommand
getWhere() 杩斿洖鏌ヨ鐨刉HERE閮ㄥ垎銆 CDbCommand
group() 璁剧疆鏌ヨ鐨 GROUP BY 閮ㄥ垎銆 CDbCommand
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
having() 璁剧疆鏌ヨ鐨 HAVING 閮ㄥ垎銆 CDbCommand
insert() 鍒涘缓鍜屾墽琛屼竴涓猄QL璇彞銆 CDbCommand
join() 闄勫姞涓涓狪NNER JOIN閮ㄥ垎鍒版鏌ヨ銆 CDbCommand
leftJoin() 闄勫姞涓涓狶EFT OUTER JOIN閮ㄥ垎鍒版鏌ヨ銆 CDbCommand
limit() 璁剧疆鏌ヨ鐨 LIMIT 閮ㄥ垎銆 CDbCommand
naturalJoin() 闄勫姞涓涓狽ATURAL JOIN 閮ㄥ垎鍒版煡璇€ CDbCommand
offset() 璁剧疆鏌ヨ鐨 OFFSET 閮ㄥ垎銆 CDbCommand
order() 璁剧疆姝ゆ煡璇㈢殑ORDER BY閮ㄥ垎銆 CDbCommand
prepare() 鍑嗗瑕佹墽琛岀殑SQL璇彞銆 CDbCommand
query() 鎵цSQL璇彞骞惰繑鍥炴煡璇㈢粨鏋溿 CDbCommand
queryAll() 鎵цSQL璇彞骞惰繑鍥炴墍鏈夎銆 CDbCommand
queryColumn() 鎵цSQL璇彞骞惰繑鍥炵粨鏋滅殑绗竴鍒椼 CDbCommand
queryRow() 鎵ц姝QL璇彞骞惰繑鍥炵粨鏋滅殑绗竴琛屻 CDbCommand
queryScalar() 鎵ц姝QL璇彞骞惰繑鍥炵涓琛屾暟鎹殑绗竴鍒楃殑鍊笺 CDbCommand
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
renameColumn() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓洪噸鍛藉悕涓涓垪銆 CDbCommand
renameTable() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓洪噸鍛藉悕涓涓暟鎹〃銆 CDbCommand
reset() 娓呯悊鍛戒护锛屽苟鍑嗗寤虹珛涓涓柊鐨勬煡璇€ CDbCommand
rightJoin() 闄勫姞涓涓猂IGHT OUTER JOIN閮ㄥ垎鍒版鏌ヨ銆 CDbCommand
select() 璁剧疆鏌ヨ鐨凷ELECT閮ㄥ垎銆 CDbCommand
selectDistinct() 璁剧疆姝ゆ煡璇㈢殑SELECT閮ㄥ垎锛屽甫鏈塂ISTINCT鏍囧織寮鍏炽 CDbCommand
setDistinct() 璁剧疆涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ CDbCommand
setFetchMode() 璁剧疆姝よ鍙ョ殑榛樿璇诲彇妯″紡銆 CDbCommand
setFrom() 璁剧疆鏌ヨ鐨凢ROM閮ㄥ垎銆 CDbCommand
setGroup() 璁剧疆鏌ヨ鐨 GROUP BY 閮ㄥ垎銆 CDbCommand
setHaving() 璁剧疆鏌ヨ鐨 HAVING 閮ㄥ垎銆 CDbCommand
setJoin() 璁剧疆鏌ヨ鐨刯oin閮ㄥ垎銆 CDbCommand
setLimit() 璁剧疆鏌ヨ鐨 LIMIT 閮ㄥ垎銆 CDbCommand
setOffset() 璁剧疆鏌ヨ鐨 OFFSET 閮ㄥ垎銆 CDbCommand
setOrder() 璁剧疆鏌ヨ鐨 ORDER BY 閮ㄥ垎銆 CDbCommand
setSelect() 璁剧疆鐨凷ELECT閮ㄥ垎銆 CDbCommand
setText() 鎸囧畾瑕佹墽琛岀殑SQL璇彞銆 CDbCommand
setUnion() 璁剧疆鏌ヨ鐨 UNION 閮ㄥ垎銆 CDbCommand
setWhere() 璁剧疆鏌ヨ鐨 WHERE 閮ㄥ垎銆 CDbCommand
truncateTable() 缁戝畾骞舵墽琛屼竴鏉QL璇彞涓烘竻绌轰竴涓暟鎹〃銆 CDbCommand
union() 闄勫姞涓涓猆NION鎿嶄綔绗﹀埌涓涓猄QL璇彞銆 CDbCommand
update() 鍒涘缓骞舵墽琛屼竴鏉PDATE SQL璇彞銆 CDbCommand
where() 璁剧疆鏌ヨ鐨刉HERE銆 CDbCommand

灞炴ц缁

connection 灞炴 鍙

鍜岃繖涓懡浠ょ浉鍏崇殑杩炴帴銆

distinct 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public boolean getDistinct()
public void setDistinct(boolean $value)

杩斿洖涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ

from 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getFrom()
public void setFrom(mixed $value)

杩斿洖鏌ヨ鐨 FROM 閮ㄥ垎銆

group 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getGroup()
public void setGroup(mixed $value)

杩斿洖鏌ヨ涓殑 GROUP BY 閮ㄥ垎銆

having 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getHaving()
public void setHaving(mixed $value)

杩斿洖鏌ヨ鐨凥AVING閮ㄥ垎銆

join 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public mixed getJoin()
public void setJoin(mixed $value)

杩斿洖鏌ヨ鐨刯oin閮ㄥ垎銆

limit 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getLimit()
public void setLimit(integer $value)

杩斿洖鏌ヨ鐨 LIMIT 閮ㄥ垎銆

offset 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getOffset()
public void setOffset(integer $value)

杩斿洖鏌ヨ鐨 OFFSET 閮ㄥ垎銆

order 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getOrder()
public void setOrder(mixed $value)

杩斿洖鏌ヨ鐨 ORDER BY 閮ㄥ垎銆

params 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public array $params;

鍙傛暟锛坣ame=>value锛夎缁戝畾瑕佹煡璇㈢殑褰撳墠璇彞銆

pdoStatement 灞炴 鍙
public PDOStatement getPdoStatement()

杩欎釜鍛戒护搴曞眰鐨凱DOStatement 濡傛灉灏氭湭鍑嗗濂借鍙ワ紝瀹冨彲浠ユ槸null銆

select 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getSelect()
public void setSelect(mixed $value)

杩斿洖鏌ヨ鐨凷ELECT閮ㄥ垎銆

text 灞炴
public string getText()
public CDbCommand setText(string $value)

杩斿洖灏嗚鎵ц鐨凷QL璇彞銆

union 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public mixed getUnion()
public void setUnion(mixed $value)

杩斿洖鏌ヨ鐨 UNION 閮ㄥ垎銆

where 灞炴 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getWhere()
public void setWhere(mixed $value)

杩斿洖鏌ヨ鐨刉HERE閮ㄥ垎銆

鏂规硶璇︾粏

__construct() 鏂规硶
public void __construct(CDbConnection $connection, mixed $query=NULL)
$connection CDbConnection 鏁版嵁搴撹繛鎺
$query mixed 瑕佹墽琛岀殑鏁版嵁搴撴煡璇€傝繖涓彲浠ユ槸浠h〃SQL璇彞鐨勪竴涓瓧绗︿覆鎴栦竴涓暟缁勶紝 瀹冪殑閿悕-閿煎灏嗚鐢ㄤ綔璁剧疆锛 鍒涘缓鐩稿簲瀵硅薄鍛戒护鐨勫睘鎬с

渚嬪锛屼綘鑳戒紶閫 鈥楽ELECT * FROM tbl_user鈥array(鈥榮elect鈥=>鈥*鈥欙紝鈥榝rom鈥=>鈥榯bl_user鈥)銆 浠栦滑鏈缁堢殑鏌ヨ缁撴灉绛夊悓銆

褰撲紶閫掓煡璇负涓涓暟缁勬椂锛岄氬父瑕佽缃笅闈㈢殑灞炴: selectdistinctfromwherejoingrouphavingorderlimitoffsetunion銆 璇峰弬鑰冭繖浜涘睘鎬ф瘡涓缃殑鏇村缁嗚妭銆 鍏充簬楠岃瘉灞炴с傝繖涓姛鑳藉彲鐢ㄨ嚜鐗堟湰 1.1.6銆

鑷 1.1.7 閫氳繃璁剧疆FetchMode浣跨敤涓涓壒瀹氱殑鏁版嵁鑾峰彇妯″紡鏄彲鑳界殑銆傚弬瑙http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php 涓烘洿澶氳缁嗕俊鎭
婧愮爜锛 framework/db/CDbCommand.php#101 (鏄剧ず)
public function __construct(CDbConnection $connection,$query=null)
{
    
$this->_connection=$connection;
    if(
is_array($query))
    {
        foreach(
$query as $name=>$value)
            
$this->$name=$value;
    }
    else
        
$this->setText($query);
}

鏋勯犲嚱鏁般

__sleep() 鏂规硶
public array __sleep()
{return} array
婧愮爜锛 framework/db/CDbCommand.php#117 (鏄剧ず)
public function __sleep()
{
    
$this->_statement=null;
    return 
array_keys(get_object_vars($this));
}

褰撳簭鍒楀寲鏃惰鍙ュ0鏄庝负null銆

addColumn() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer addColumn(string $table, string $column, string $type)
$table string 鏂板垪灏嗚娣诲姞杩涘幓鐨勮〃銆傛琛ㄥ悕灏嗚姝ゆ柟娉曟伆褰撶殑寮曠敤銆
$column string 鏂板垪鐨勫悕绉般傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$type string 鍒楃被鍨嬶紝getColumnType鏂规硶灏嗚瑙﹀彂杞崲鎶借薄鐨勫垪绫诲瀷(鑻ユ湁)涓哄疄闄呯被鍨嬨 浠讳綍涓嶈兘璇嗗埆鐨勬娊璞$被鍨嬪皢淇濇寔鍦ㄧ敓鎴愮殑SQL涓 渚嬪锛'string'灏嗚杞崲鎴'varchar(255)', 鍚屾椂 'string not null' 灏嗗彉鎴 'varchar(255) not null'.
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1302 (鏄剧ず)
public function addColumn($table$column$type)
{
    return 
$this->setText($this->getConnection()->getSchema()->addColumn($table$column$type))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄鍔犱竴涓柊鐨勬暟鎹垪銆

addForeignKey() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer addForeignKey(string $name, string $table, string $columns, string $refTable, string $refColumns, string $delete=NULL, string $update=NULL)
$name string 澶栭敭缁撴潫鐨勫悕绉般
$table string 澶栭敭缁撴潫灏嗚娣诲姞杩涘幓鐨勮〃銆
$columns string 绾︽潫灏嗚娣诲姞鍒扮殑琛ㄥ悕銆傚鏋滄湁澶氬垪锛岀敤閫楀彿鍒嗗紑瀹冧滑銆
$refTable string 澶栭敭寮曠敤鐨勮〃銆
$refColumns string 澶栭敭寮曠敤鐨勫垪鐨勫悕绉般傚鏋滄湁澶氬垪锛岀敤閫楀彿鍒嗗紑瀹冧滑銆
$delete string ON DELETE 閫夐」銆 澶ч儴鍒 DBMS 鏀寔杩欎釜閫夐」: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL
$update string ON UPDATE 閫夐」銆 澶ч儴鍒 DBMS 鏀寔杩欎釜閫夐」: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1360 (鏄剧ず)
public function addForeignKey($name$table$columns$refTable$refColumns$delete=null$update=null)
{
    return 
$this->setText($this->getConnection()->getSchema()->addForeignKey($name$table$columns$refTable$refColumns$delete$update))->execute();
}

涓哄凡缁忓瓨鍦ㄧ殑鏁版嵁琛ㄥ垱寤轰竴鏉″閿害鏉熺殑SQL璇彞銆 杩欎釜鏂规硶灏嗘伆褰撶殑寮曠敤姝ゅ垪鍜屽垪鍚嶃

alterColumn() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer alterColumn(string $table, string $column, string $type)
$table string 鍒楀皢琚敼鍙樼殑琛ㄣ傝〃鍚嶅皢琚繖涓柟娉曟伆褰撶殑寮曠敤銆
$column string 瑕佹洿鏀圭殑鍒楃殑鍚嶇О銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$type string 鏂板垪鐨勭被鍨嬨俫etColumnType 鏂规硶灏嗚瑙﹀彂杞崲鎶借薄鍒楃被鍨(鑻ユ湁) 涓哄疄闄呯被鍨嬨備换浣曟棤娉曡瘑鍒殑鎶借薄绫诲瀷灏嗚淇濇寔鍦ㄥ凡缁忕敓鎴愮殑SQL涓 渚嬪锛'string' 灏嗚杞崲鎴 'varchar(255)', 鍚屾椂 'string not null' 灏嗗彉鎴 'varchar(255) not null'銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1342 (鏄剧ず)
public function alterColumn($table$column$type)
{
    return 
$this->setText($this->getConnection()->getSchema()->alterColumn($table$column$type))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓烘敼鍙樹竴涓垪鐨勫畾涔夈

bindParam() 鏂规硶
public CDbCommand bindParam(mixed $name, mixed &$value, integer $dataType=NULL, integer $length=NULL, mixed $driverOptions=NULL)
$name mixed 鍙傛暟鏍囪瘑绗︺ 瀵逛簬涓涓娇鐢ㄥ懡鍚嶅崰浣嶇鐨勯鍑嗗璇彞锛岃繖灏嗘槸涓涓〃鍗曞悕绉板弬鏁:name銆 瀵逛簬涓涓娇鐢ㄩ棶鍙峰崰浣嶇鐨勯鍑嗗璇彞锛 杩欏皢鏄竴涓粠1寮濮嬬殑鍙傛暟浣嶇疆绱㈠紩銆
$value mixed 缁戝畾鍒癝QL璇彞鍙傛暟鐨凱HP鍙橀噺銆
$dataType integer 鍙傛暟鐨凷QL鏁版嵁绫诲瀷銆傚鏋滀负null锛屾绫诲瀷鐢盤HP鍊肩殑绫诲瀷鍐冲畾銆
$length integer 鏁版嵁绫诲瀷鐨勯暱搴
$driverOptions mixed 鎸囧畾鐨勯┍鍔ㄩ夐」(鑷増鏈1.1.6鍙敤)
{return} CDbCommand 褰撳墠瑕佹墽琛岀殑鍛戒护
婧愮爜锛 framework/db/CDbCommand.php#245 (鏄剧ず)
public function bindParam($name, &$value$dataType=null$length=null$driverOptions=null)
{
    
$this->prepare();
    if(
$dataType===null)
        
$this->_statement->bindParam($name,$value,$this->_connection->getPdoType(gettype($value)));
    else if(
$length===null)
        
$this->_statement->bindParam($name,$value,$dataType);
    else if(
$driverOptions===null)
        
$this->_statement->bindParam($name,$value,$dataType,$length);
    else
        
$this->_statement->bindParam($name,$value,$dataType,$length,$driverOptions);
    
$this->_paramLog[$name]=&$value;
    return 
$this;
}

缁戝畾涓涓弬鏁板埌瑕佹墽琛岀殑璇彞銆

bindValue() 鏂规硶
public CDbCommand bindValue(mixed $name, mixed $value, integer $dataType=NULL)
$name mixed 鍙傛暟鏍囩绗︺ 瀵逛簬涓涓娇鐢ㄥ懡鍚嶅崰浣嶇鐨勯鍑嗗璇彞锛 杩欏皢鏄竴涓〃鍗曞悕绉板弬鏁:name锛 瀵逛簬涓涓娇鐢ㄩ棶鍙峰崰浣嶇鐨勯鍑嗗璇彞锛 杩欏皢鏄竴涓粠1寮濮嬬殑鍙傛暟浣嶇疆绱㈠紩銆
$value mixed 缁戝畾鍒版鍙傛暟鐨勫
$dataType integer 鍙傛暟鐨凷QL鏁版嵁绫诲瀷銆傚鏋滀负null锛屾绫诲瀷鐢盤HP鍊肩殑绫诲瀷鍐冲畾銆
{return} CDbCommand 褰撳墠瑕佹墽琛岀殑鍛戒护
婧愮爜锛 framework/db/CDbCommand.php#271 (鏄剧ず)
public function bindValue($name$value$dataType=null)
{
    
$this->prepare();
    if(
$dataType===null)
        
$this->_statement->bindValue($name,$value,$this->_connection->getPdoType(gettype($value)));
    else
        
$this->_statement->bindValue($name,$value,$dataType);
    
$this->_paramLog[$name]=$value;
    return 
$this;
}

缁戝畾涓涓煎埌鍙傛暟銆

bindValues() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.5锛
public CDbCommand bindValues(array $values)
$values array 瑕佽缁戝畾鐨勫笺 杩欎釜蹇呴』鐢辩浉搴旂殑鏁扮粍閿粰瀹氬弬鏁板悕锛屾暟缁勫肩粰瀹氬弬鏁板笺 渚嬪锛 array(鈥:name鈥=>鈥楯ohn鈥, 鈥:age鈥=>25).
{return} CDbCommand 杩斿洖褰撳墠灏嗘墽琛岀殑鍛戒护
婧愮爜锛 framework/db/CDbCommand.php#292 (鏄剧ず)
public function bindValues($values)
{
    
$this->prepare();
    foreach(
$values as $name=>$value)
    {
        
$this->_statement->bindValue($name,$value,$this->_connection->getPdoType(gettype($value)));
        
$this->_paramLog[$name]=$value;
    }
    return 
$this;
}

灏嗕竴涓垪琛ㄧ殑鍊肩粦瀹氬埌鐩稿簲鍙傛暟銆 闄や簡缁戝畾澶氫釜鍊煎锛岃繖涓拰 bindValue 鏄浉浼肩殑銆 娉ㄦ剰姣忎釜鍊肩殑SQL鏁版嵁绫诲瀷鏄敱PHP绫诲瀷鍐冲畾銆

buildQuery() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string buildQuery(array $query)
$query array 鍚嶇О-鍊煎鏌ヨ瑙勮寖銆 涓嬮潰鐨勬煡璇㈤夐」琚敮鎸併傦細selectdistinctfromwherejoin, group, having, orderlimitoffsetunion
{return} string 杩斿洖SQL璇彞
婧愮爜锛 framework/db/CDbCommand.php#542 (鏄剧ず)
public function buildQuery($query)
{
    
$sql=isset($query['distinct']) && $query['distinct'] ? 'SELECT DISTINCT' 'SELECT';
    
$sql.=' '.(isset($query['select']) ? $query['select'] : '*');

    if(isset(
$query['from']))
        
$sql.="\nFROM ".$query['from'];
    else
        throw new 
CDbException(Yii::t('yii','The DB query must contain the "from" portion.'));

    if(isset(
$query['join']))
        
$sql.="\n".(is_array($query['join']) ? implode("\n",$query['join']) : $query['join']);

    if(isset(
$query['where']))
        
$sql.="\nWHERE ".$query['where'];

    if(isset(
$query['group']))
        
$sql.="\nGROUP BY ".$query['group'];

    if(isset(
$query['having']))
        
$sql.="\nHAVING ".$query['having'];

    if(isset(
$query['order']))
        
$sql.="\nORDER BY ".$query['order'];

    
$limit=isset($query['limit']) ? (int)$query['limit'] : -1;
    
$offset=isset($query['offset']) ? (int)$query['offset'] : -1;
    if(
$limit>=|| $offset>0)
        
$sql=$this->_connection->getCommandBuilder()->applyLimit($sql,$limit,$offset);

    if(isset(
$query['union']))
        
$sql.="\nUNION (\n".(is_array($query['union']) ? implode("\n) UNION (\n",$query['union']) : $query['union']) . ')';

    return 
$sql;
}

鐢熸垚涓涓猄QL SELECT璇彞浠庣粰瀹氭煡璇㈣鑼冦

cancel() 鏂规硶
public void cancel()
婧愮爜锛 framework/db/CDbCommand.php#227 (鏄剧ず)
public function cancel()
{
    
$this->_statement=null;
}

鍙栨秷SQL璇彞鐨勬墽琛屻

createIndex() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer createIndex(string $name, string $table, string $column, boolean $unique=false)
$name string 绱㈠紩鐨勫悕绉般傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$table string 瑕佷负鍏跺垱寤烘柊绱㈠紩鐨勮〃銆傝〃鍚嶅皢杩欎釜鏂规硶鎭板綋鐨勫紩鐢ㄣ
$column string 琚寘鍚湪绱㈠紩涓殑鍒椼傚鏋滄湁澶氬垪锛岃鐢ㄩ楀彿鍒嗗紑瀹冧滑銆 姝ゅ垪鍚嶅皢琚鏂规硶鎭板綋鐨勫紩鐢ㄣ
$unique boolean 鏄惁鍦ㄥ垱寤虹储寮曟椂澧炲姞UNIQUE绾︽潫銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1387 (鏄剧ず)
public function createIndex($name$table$column$unique=false)
{
    return 
$this->setText($this->getConnection()->getSchema()->createIndex($name$table$column$unique))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垱寤轰竴涓柊绱㈠紩銆

createTable() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer createTable(string $table, array $columns, string $options=NULL)
$table string 琚垱寤虹殑琛ㄧ殑鍚嶇О銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$columns array 鏂拌〃涓殑鍒(name=>definition)銆
$options string 棰濆鐨凷QL鐗囨锛屽皢闄勫姞鍒扮敓鎴愮殑SQL涓
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1249 (鏄剧ず)
public function createTable($table$columns$options=null)
{
    return 
$this->setText($this->getConnection()->getSchema()->createTable($table$columns$options))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垱寤轰竴涓暟鎹〃銆

搴斿皢鏂拌〃涓殑鍒楁寚瀹氫负鍚嶇О-瀹氫箟瀵(渚嬪'name'=>'string'), 杩欓噷 name 浠h〃涓涓垪鍚嶏紝瀹冨皢琚繖涓柟娉曟伆褰撶殑寮曠敤锛岃 definition 浠h〃鍒楃殑绫诲瀷锛屽畠鑳藉寘鍚竴涓娊璞$殑DB绫诲瀷銆 getColumnType 鏂规硶灏嗚瑙﹀彂杞崲浠讳綍鎶借薄绫诲瀷涓轰竴涓疄闄呯被鍨嬨

濡傛灉浠呮寚瀹氫簡鍒楃殑瀹氫箟(渚嬪 'PRIMARY KEY (name, type)')锛屽畠灏嗚鐩存帴鎻掑叆 鐢熸垚鐨 SQL涓

crossJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand crossJoin(string $table)
$table string 瑕佽杩炴帴鐨勮〃銆 琛ㄥ彲鍖呭惈schema鍓嶇紑(渚嬪 鈥榩ublic.tbl_user鈥)鍜/鎴 琛ㄥ埆鍚 (渚嬪 鈥榯bl_user u鈥)銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝よ〃鍚嶏紝闄ら潪瀹冨寘鍚竴浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮)銆
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#878 (鏄剧ず)
public function crossJoin($table)
{
    return 
$this->joinInternal('cross join'$table);
}

闄勫姞涓涓狢ROSS JOIN閮ㄥ垎鍒版鏌ヨ銆 娉ㄦ剰涓嶆槸鎵鏈夌殑DBMS閮芥敮鎸丆ROSS JOIN.

delete() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer delete(string $table, mixed $conditions='', array $params=array ( ))
$table string 鏁版嵁灏嗚琚垹闄ょ殑琛ㄣ
$conditions mixed 灏嗚鏀惧叆WHERE 閮ㄥ垎鐨勬潯浠躲 璇峰弬鑰where鍏充簬鎬庢牱鎸囧畾鏉′欢銆
$params array 琚粦瀹氬埌鏌ヨ鐨勫弬鏁般
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1224 (鏄剧ず)
public function delete($table$conditions=''$params=array())
{
    
$sql='DELETE FROM ' $this->_connection->quoteTableName($table);
    if((
$where=$this->processConditions($conditions))!='')
        
$sql.=' WHERE '.$where;
    return 
$this->setText($sql)->execute($params);
}

鍒涘缓骞舵墽琛屼竴鏉 DELETE SQL 璇彞銆

dropColumn() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer dropColumn(string $table, string $column)
$table string 鍒楀皢琚垹闄ょ殑琛紝姝ゅ悕绉板皢琚鏂规硶鎭板綋鐨勫紩鐢ㄣ
$column string 灏嗚鍒犻櫎鐨勫垪鐨勫悕绉般傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1314 (鏄剧ず)
public function dropColumn($table$column)
{
    return 
$this->setText($this->getConnection()->getSchema()->dropColumn($table$column))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓暟鎹垪銆

dropForeignKey() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer dropForeignKey(string $name, string $table)
$name string 瑕佽鍒犻櫎鐨勫閿害鏉熷悕绉般傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$table string 瑕佽鍒犻櫎鐨勫閿殑琛ㄣ傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1372 (鏄剧ず)
public function dropForeignKey($name$table)
{
    return 
$this->setText($this->getConnection()->getSchema()->dropForeignKey($name$table))->execute();
}

寤虹珛涓鏉QL璇彞涓哄垹闄や竴涓閿害鏉熴

dropIndex() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer dropIndex(string $name, string $table)
$name string 瑕佸垹闄ょ殑绱㈠紩鍚嶇О銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$table string 绱㈠紩瑕佽鍒犻櫎鐨勮〃銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1399 (鏄剧ず)
public function dropIndex($name$table)
{
    return 
$this->setText($this->getConnection()->getSchema()->dropIndex($name$table))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓储寮曘

dropTable() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer dropTable(string $table)
$table string 瑕佸垹闄ょ殑琛ㄣ傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1272 (鏄剧ず)
public function dropTable($table)
{
    return 
$this->setText($this->getConnection()->getSchema()->dropTable($table))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓哄垹闄や竴涓暟鎹〃

execute() 鏂规硶
public integer execute(array $params=array ( ))
$params array 涓篠QL鎵ц鐨勮緭鍏ュ弬鏁 (name=>value)銆 瀵逛簬bindParambindValue杩欐槸浜岄変竴鐨勩 濡傛灉浣犳湁澶氫釜杈撳叆鍙傛暟锛岀敤杩欑鏂瑰紡浼犻掍粬浠兘鎻愰珮鎬ц兘銆 娉ㄦ剰锛屽鏋滀綘鐢ㄨ繖绉嶆柟寮忎紶閫掑弬鏁帮紝浣犱笉鑳戒娇鐢 bindParam鎴栬bindValue缁戝畾鍙傛暟鎴栧硷紝 鍙嶄箣浜︾劧锛岃繖鏍峰彲浠ユ彁楂樻ц兘銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#315 (鏄剧ず)
public function execute($params=array())
{
    if(
$this->_connection->enableParamLogging && ($pars=array_merge($this->_paramLog,$params))!==array())
    {
        
$p=array();
        foreach(
$pars as $name=>$value)
            
$p[$name]=$name.'='.var_export($value,true);
        
$par='. Bound with ' .implode(', ',$p);
    }
    else
        
$par='';
    
Yii::trace('Executing SQL: '.$this->getText().$par,'system.db.CDbCommand');
    try
    {
        if(
$this->_connection->enableProfiling)
            
Yii::beginProfile('system.db.CDbCommand.execute('.$this->getText().')','system.db.CDbCommand.execute');

        
$this->prepare();
        if(
$params===array())
            
$this->_statement->execute();
        else
            
$this->_statement->execute($params);
        
$n=$this->_statement->rowCount();

        if(
$this->_connection->enableProfiling)
            
Yii::endProfile('system.db.CDbCommand.execute('.$this->getText().')','system.db.CDbCommand.execute');

        return 
$n;
    }
    catch(
Exception $e)
    {
        if(
$this->_connection->enableProfiling)
            
Yii::endProfile('system.db.CDbCommand.execute('.$this->getText().')','system.db.CDbCommand.execute');
        
$errorInfo $e instanceof PDOException $e->errorInfo null;
        
$message $e->getMessage();
        
Yii::log(Yii::t('yii','CDbCommand::execute() failed: {error}. The SQL statement executed was: {sql}.',
            array(
'{error}'=>$message'{sql}'=>$this->getText().$par)),CLogger::LEVEL_ERROR,'system.db.CDbCommand');
        if(
YII_DEBUG)
            
$message .= '. The SQL statement executed was: '.$this->getText().$par;
        throw new 
CDbException(Yii::t('yii','CDbCommand failed to execute the SQL statement: {error}',
            array(
'{error}'=>$message)),(int)$e->getCode(),$errorInfo);
    }
}

鎵ц姝 SQL 璇彞銆 姝ゆ柟娉曟剰鍛崇潃鍙墽琛 non-query SQL 璇彞銆 灏嗕笉杩斿洖缁撴灉闆嗐

from() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand from(mixed $tables)
$tables mixed from閫夋嫨鐨勮〃锛堝彲鑳芥槸澶氫釜锛夈傝繖涓彲鑳芥槸涓涓瓧绗︿覆(渚嬪 'tbl_user') 鎴栦竴涓暟缁 (渚嬪 array('tbl_user', 'tbl_profile')) 鎸囧畾涓涓垨澶氫釜琛ㄥ悕銆 琛ㄥ悕鑳藉寘鍚玸chema鍓嶇紑 (渚嬪 'public.tbl_user') 鍜/鎴 琛ㄥ埆鍚 (渚嬪 'tbl_user u'). 姝ゆ柟娉曞皢鑷姩鐨勫紩鐢ㄦ琛ㄥ悕锛岄櫎闈炲畠鍖呭惈涓浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮).
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#682 (鏄剧ず)
public function from($tables)
{
    if(
is_string($tables) && strpos($tables,'(')!==false)
        
$this->_query['from']=$tables;
    else
    {
        if(!
is_array($tables))
            
$tables=preg_split('/\s*,\s*/',trim($tables),-1,PREG_SPLIT_NO_EMPTY);
        foreach(
$tables as $i=>$table)
        {
            if(
strpos($table,'(')===false)
            {
                if(
preg_match('/^(.*?)(?i:\s+as\s+|\s+)(.*)$/',$table,$matches))  // with alias
                    
$tables[$i]=$this->_connection->quoteTableName($matches[1]).' '.$this->_connection->quoteTableName($matches[2]);
                else
                    
$tables[$i]=$this->_connection->quoteTableName($table);
            }
        }
        
$this->_query['from']=implode(', ',$tables);
    }
    return 
$this;
}

璁剧疆鏌ヨ鐨凢ROM閮ㄥ垎銆

getConnection() 鏂规硶
public CDbConnection getConnection()
{return} CDbConnection 鍜岃繖涓懡浠ょ浉鍏崇殑杩炴帴銆
婧愮爜锛 framework/db/CDbCommand.php#184 (鏄剧ず)
public function getConnection()
{
    return 
$this->_connection;
}

getDistinct() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public boolean getDistinct()
{return} boolean 杩斿洖涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ
婧愮爜锛 framework/db/CDbCommand.php#657 (鏄剧ず)
public function getDistinct()
{
    return isset(
$this->_query['distinct']) ? $this->_query['distinct'] : false;
}

杩斿洖涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ

getFrom() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getFrom()
{return} string 鏌ヨ鐨凢ROM閮ㄥ垎(娌℃湁 'FROM' )銆
婧愮爜锛 framework/db/CDbCommand.php#710 (鏄剧ず)
public function getFrom()
{
    return isset(
$this->_query['from']) ? $this->_query['from'] : '';
}

杩斿洖鏌ヨ鐨 FROM 閮ㄥ垎銆

getGroup() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getGroup()
{return} string 杩斿洖鏌ヨ涓殑 GROUP BY 閮ㄥ垎 (娌℃湁 鈥楪ROUP BY鈥 )銆
婧愮爜锛 framework/db/CDbCommand.php#932 (鏄剧ず)
public function getGroup()
{
    return isset(
$this->_query['group']) ? $this->_query['group'] : '';
}

杩斿洖鏌ヨ涓殑 GROUP BY 閮ㄥ垎銆

getHaving() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getHaving()
{return} string 杩斿洖鏌ヨ鐨凥AVING閮ㄥ垎(娌℃湁 'HAVING' ) 銆
婧愮爜锛 framework/db/CDbCommand.php#969 (鏄剧ず)
public function getHaving()
{
    return isset(
$this->_query['having']) ? $this->_query['having'] : '';
}

杩斿洖鏌ヨ鐨凥AVING閮ㄥ垎銆

getJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public mixed getJoin()
{return} mixed 鏌ヨ鐨刯oin銆 杩欎釜鍙互鏄竴涓暟缁勮〃绀哄涓猨oin鐗囨柇锛屾垨涓涓瓧绗︿覆琛ㄧず鍗曚釜join鐗囨柇銆 姣忎竴涓猨oin鐗囨柇灏嗗寘鍚伆褰撶殑join鎿嶄綔绗(渚嬪 LEFT JOIN)銆
婧愮爜锛 framework/db/CDbCommand.php#817 (鏄剧ず)
public function getJoin()
{
    return isset(
$this->_query['join']) ? $this->_query['join'] : '';
}

杩斿洖鏌ヨ鐨刯oin閮ㄥ垎銆

getLimit() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getLimit()
{return} string 杩斿洖鏌ヨ鐨 LIMIT 閮ㄥ垎锛堟病鏈 'LIMIT'锛夈
婧愮爜锛 framework/db/CDbCommand.php#1060 (鏄剧ず)
public function getLimit()
{
    return isset(
$this->_query['limit']) ? $this->_query['limit'] : -1;
}

杩斿洖鏌ヨ鐨 LIMIT 閮ㄥ垎銆

getOffset() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getOffset()
{return} string 鏌ヨ鐨凮FFSET閮ㄥ垎(娌℃湁'OFFSET' )銆
婧愮爜锛 framework/db/CDbCommand.php#1093 (鏄剧ず)
public function getOffset()
{
    return isset(
$this->_query['offset']) ? $this->_query['offset'] : -1;
}

杩斿洖鏌ヨ鐨 OFFSET 閮ㄥ垎銆

getOrder() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getOrder()
{return} string 杩斿洖鏌ヨ涓殑ORDER BY閮ㄥ垎(娌℃湁 'ORDER BY' )銆
婧愮爜锛 framework/db/CDbCommand.php#1024 (鏄剧ず)
public function getOrder()
{
    return isset(
$this->_query['order']) ? $this->_query['order'] : '';
}

杩斿洖鏌ヨ鐨 ORDER BY 閮ㄥ垎銆

getPdoStatement() 鏂规硶
public PDOStatement getPdoStatement()
{return} PDOStatement 杩欎釜鍛戒护搴曞眰鐨凱DOStatement 濡傛灉灏氭湭鍑嗗濂借鍙ワ紝瀹冨彲浠ユ槸null銆
婧愮爜锛 framework/db/CDbCommand.php#193 (鏄剧ず)
public function getPdoStatement()
{
    return 
$this->_statement;
}

getSelect() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getSelect()
{return} string 鏌ヨ鐨凷ELECT閮ㄥ垎(娌℃湁'SELECT')
婧愮爜锛 framework/db/CDbCommand.php#623 (鏄剧ず)
public function getSelect()
{
    return isset(
$this->_query['select']) ? $this->_query['select'] : '';
}

杩斿洖鏌ヨ鐨凷ELECT閮ㄥ垎銆

getText() 鏂规硶
public string getText()
{return} string 杩斿洖灏嗚鎵ц鐨凷QL璇彞銆
婧愮爜锛 framework/db/CDbCommand.php#158 (鏄剧ず)
public function getText()
{
    if(
$this->_text=='' && !empty($this->_query))
        
$this->setText($this->buildQuery($this->_query));
    return 
$this->_text;
}

getUnion() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public mixed getUnion()
{return} mixed 鏌ヨ鐨刄NION閮ㄥ垎(娌℃湁'UNION' )銆 瀹冨彲浠ユ槸涓涓瓧绗︿覆鎴栦竴涓暟缁勶紙琛ㄧず澶氫釜union锛夐儴鍒嗐
婧愮爜锛 framework/db/CDbCommand.php#1131 (鏄剧ず)
public function getUnion()
{
    return isset(
$this->_query['union']) ? $this->_query['union'] : '';
}

杩斿洖鏌ヨ鐨 UNION 閮ㄥ垎銆

getWhere() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public string getWhere()
{return} string 鏌ヨ鐨刉HERE閮ㄥ垎 (娌℃湁 'WHERE' )銆
婧愮爜锛 framework/db/CDbCommand.php#777 (鏄剧ず)
public function getWhere()
{
    return isset(
$this->_query['where']) ? $this->_query['where'] : '';
}

杩斿洖鏌ヨ鐨刉HERE閮ㄥ垎銆

group() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand group(mixed $columns)
$columns mixed 灏嗚鍒嗙粍鐨勫垪銆 琚寚瀹氱殑鍒楀彲鑳芥槸涓涓瓧绗︿覆(渚嬪 "id, name")鎴栬呬竴涓暟缁(渚嬪 array('id', 'name')). 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝ゅ垪鍚嶏紝闄ら潪涓涓垪鍖呭惈涓浜涘渾鎷彿锛 (杩欐剰鍛崇潃姝ゅ垪鍖呭惈涓涓狣B琛ㄨ揪寮)銆
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#907 (鏄剧ず)
public function group($columns)
{
    if(
is_string($columns) && strpos($columns,'(')!==false)
        
$this->_query['group']=$columns;
    else
    {
        if(!
is_array($columns))
            
$columns=preg_split('/\s*,\s*/',trim($columns),-1,PREG_SPLIT_NO_EMPTY);
        foreach(
$columns as $i=>$column)
        {
            if(
is_object($column))
                
$columns[$i]=(string)$column;
            else if(
strpos($column,'(')===false)
                
$columns[$i]=$this->_connection->quoteColumnName($column);
        }
        
$this->_query['group']=implode(', ',$columns);
    }
    return 
$this;
}

璁剧疆鏌ヨ鐨 GROUP BY 閮ㄥ垎銆

having() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand having(mixed $conditions, array $params=array ( ))
$conditions mixed 鏀惧湪HAVING鍚庣殑鏉′欢銆 璇峰弬鑰where鍏充簬鎬庢牱鎸囧畾鏉′欢銆
$params array 缁戝畾鍒版鏌ヨ鐨勫弬鏁 (name=>value)
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#956 (鏄剧ず)
public function having($conditions$params=array())
{
    
$this->_query['having']=$this->processConditions($conditions);
    foreach(
$params as $name=>$value)
        
$this->params[$name]=$value;
    return 
$this;
}

璁剧疆鏌ヨ鐨 HAVING 閮ㄥ垎銆

insert() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer insert(string $table, array $columns)
$table string 灏嗚鎻掑叆鐨勮〃銆
$columns array 瑕佹彃鍏ヨ〃鐨勫垪鏁版嵁(name=>value)銆
{return} integer 杩斿洖姝ゆ墽琛屽奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1155 (鏄剧ず)
public function insert($table$columns)
{
    
$params=array();
    
$names=array();
    
$placeholders=array();
    foreach(
$columns as $name=>$value)
    {
        
$names[]=$this->_connection->quoteColumnName($name);
        if(
$value instanceof CDbExpression)
        {
            
$placeholders[] = $value->expression;
            foreach(
$value->params as $n => $v)
                
$params[$n] = $v;
        }
        else
        {
            
$placeholders[] = ':' $name;
            
$params[':' $name] = $value;
        }
    }
    
$sql='INSERT INTO ' $this->_connection->quoteTableName($table)
        . 
' (' implode(', ',$names) . ') VALUES ('
        
implode(', '$placeholders) . ')';
    return 
$this->setText($sql)->execute($params);
}

鍒涘缓鍜屾墽琛屼竴涓猄QL璇彞銆 璇ユ柟娉曞皢鎭板綋鐨勮浆涔夊垪鍚嶏紝骞剁粦瀹氳鎻掑叆鐨勫笺

join() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand join(string $table, mixed $conditions, array $params=array ( ))
$table string 瑕佽杩炴帴鐨勮〃銆 琛ㄥ彲鍖呭惈schema鍓嶇紑(渚嬪 'public.tbl_user')鍜/鎴 琛ㄥ埆鍚 (渚嬪 'tbl_user u')銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝よ〃鍚嶏紝闄ら潪瀹冨寘鍚竴浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮)銆
$conditions mixed 鍑虹幇鍦∣N閮ㄥ垎鐨刯oin鏉′欢銆 璇峰弬鑰where鍏充簬鎬庢牱鎸囧畾鏉′欢銆
$params array 缁戝畾鍒版鏌ヨ鐨勫弬鏁 (name=>value)
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#805 (鏄剧ず)
public function join($table$conditions$params=array())
{
    return 
$this->joinInternal('join'$table$conditions$params);
}

闄勫姞涓涓狪NNER JOIN閮ㄥ垎鍒版鏌ヨ銆

leftJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand leftJoin(string $table, mixed $conditions, array $params=array ( ))
$table string 瑕佽杩炴帴鐨勮〃銆 琛ㄥ彲鍖呭惈schema鍓嶇紑(渚嬪 鈥榩ublic.tbl_user鈥)鍜/鎴 琛ㄥ埆鍚 (渚嬪 鈥榯bl_user u鈥)銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝よ〃鍚嶏紝闄ら潪瀹冨寘鍚竴浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮)銆
$conditions mixed 鍑虹幇鍦∣N閮ㄥ垎鐨刯oin鏉′欢銆 璇峰弬鑰where鍏充簬鎬庢牱鎸囧畾鏉′欢銆
$params array 缁戝畾鍒版鏌ヨ鐨勫弬鏁 (name=>value)
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#846 (鏄剧ず)
public function leftJoin($table$conditions$params=array())
{
    return 
$this->joinInternal('left join'$table$conditions$params);
}

闄勫姞涓涓狶EFT OUTER JOIN閮ㄥ垎鍒版鏌ヨ銆

limit() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand limit(integer $limit, integer $offset=NULL)
$limit integer limit鍊
$offset integer offset鍊
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#1047 (鏄剧ず)
public function limit($limit$offset=null)
{
    
$this->_query['limit']=(int)$limit;
    if(
$offset!==null)
        
$this->offset($offset);
    return 
$this;
}

璁剧疆鏌ヨ鐨 LIMIT 閮ㄥ垎銆

naturalJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand naturalJoin(string $table)
$table string 瑕佽杩炴帴鐨勮〃銆 琛ㄥ彲鍖呭惈schema鍓嶇紑(渚嬪 鈥榩ublic.tbl_user鈥)鍜/鎴 琛ㄥ埆鍚 (渚嬪 鈥榯bl_user u鈥)銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝よ〃鍚嶏紝闄ら潪瀹冨寘鍚竴浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮)銆
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#893 (鏄剧ず)
public function naturalJoin($table)
{
    return 
$this->joinInternal('natural join'$table);
}

闄勫姞涓涓狽ATURAL JOIN 閮ㄥ垎鍒版煡璇€ 娉ㄦ剰涓嶆槸鎵鏈夌殑DBMS閮芥敮鎸丯ATURAL JOIN.

offset() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand offset(integer $offset)
$offset integer offset鍊
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#1082 (鏄剧ず)
public function offset($offset)
{
    
$this->_query['offset']=(int)$offset;
    return 
$this;
}

璁剧疆鏌ヨ鐨 OFFSET 閮ㄥ垎銆

order() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand order(mixed $columns)
$columns mixed 瑕佽鎺掑簭鐨勫垪(鍜屾柟鍚)銆 鎸囧畾鐨勫垪鎴栬呮槸涓涓瓧绗︿覆(渚嬪 "id ASC, name DESC")鎴栬呬竴涓暟缁(渚嬪 array('id ASC', 'name DESC'))銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝ゅ垪鍚嶏紝闄ら潪涓涓垪鍖呭惈涓浜涘渾鎷彿锛 (杩欐剰鍛崇潃姝ゅ垪鍖呭惈涓涓狣B琛ㄨ揪寮)銆
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#994 (鏄剧ず)
public function order($columns)
{
    if(
is_string($columns) && strpos($columns,'(')!==false)
        
$this->_query['order']=$columns;
    else
    {
        if(!
is_array($columns))
            
$columns=preg_split('/\s*,\s*/',trim($columns),-1,PREG_SPLIT_NO_EMPTY);
        foreach(
$columns as $i=>$column)
        {
            if(
is_object($column))
                
$columns[$i]=(string)$column;
            else if(
strpos($column,'(')===false)
            {
                if(
preg_match('/^(.*?)\s+(asc|desc)$/i',$column,$matches))
                    
$columns[$i]=$this->_connection->quoteColumnName($matches[1]).' '.strtoupper($matches[2]);
                else
                    
$columns[$i]=$this->_connection->quoteColumnName($column);
            }
        }
        
$this->_query['order']=implode(', ',$columns);
    }
    return 
$this;
}

璁剧疆姝ゆ煡璇㈢殑ORDER BY閮ㄥ垎銆

prepare() 鏂规硶
public void prepare()
婧愮爜锛 framework/db/CDbCommand.php#205 (鏄剧ず)
public function prepare()
{
    if(
$this->_statement==null)
    {
        try
        {
            
$this->_statement=$this->getConnection()->getPdoInstance()->prepare($this->getText());
            
$this->_paramLog=array();
        }
        catch(
Exception $e)
        {
            
Yii::log('Error in preparing SQL: '.$this->getText(),CLogger::LEVEL_ERROR,'system.db.CDbCommand');
            
$errorInfo $e instanceof PDOException $e->errorInfo null;
            throw new 
CDbException(Yii::t('yii','CDbCommand failed to prepare the SQL statement: {error}',
                array(
'{error}'=>$e->getMessage())),(int)$e->getCode(),$errorInfo);
        }
    }
}

鍑嗗瑕佹墽琛岀殑SQL璇彞銆 瀵逛簬瑕佸娆℃墽琛岀殑澶嶆潅鐨凷QL璇彞锛 杩欎釜鍙互鎻愰珮鎬ц兘銆 瀵逛簬缁戝畾浜嗗弬鏁扮殑SQL璇彞锛 杩欎釜鏂规硶浼氳鑷姩瑙﹀彂銆

query() 鏂规硶
public CDbDataReader query(array $params=array ( ))
$params array 涓篠QL鎵ц鐨勮緭鍏ュ熀鏁 (name=>value)銆 杩欐槸bindParambindValue浜岄変竴鐨勩 濡傛灉浣犳湁澶氫釜杈撳叆鍙傛暟锛岀敤杩欑鏂瑰紡浼犻掑畠浠兘鎻愰珮鎬ц兘銆 娉ㄦ剰濡傛灉浣犵敤杩欑鏂瑰紡浼犻掑弬鏁帮紝浣犱笉鑳戒娇鐢 bindParambindValue缁戝畾鍙傛暟鎴栧硷紝鍙嶄箣浜︾劧銆 缁戝畾鏂规硶鍜岃緭鍏ュ弬鏁帮紝杩欐牱鍙互鎻愰珮鎬ц兘銆
{return} CDbDataReader 鑾峰彇鏌ヨ缁撴灉鐨勮鍙栧櫒瀵硅薄
婧愮爜锛 framework/db/CDbCommand.php#370 (鏄剧ず)
public function query($params=array())
{
    return 
$this->queryInternal('',0,$params);
}

鎵цSQL璇彞骞惰繑鍥炴煡璇㈢粨鏋溿 姝ゆ柟娉曟墽琛岃繑鍥炵粨鏋滈泦鐨凷QL鏌ヨ銆

queryAll() 鏂规硶
public array queryAll(boolean $fetchAssociative=true, array $params=array ( ))
$fetchAssociative boolean 鏄惁姣忎竴琛屽簲璇ヨ浣滀负涓涓叧鑱旀暟缁勮繑鍥烇紝 鍏宠仈鏁扮粍鐨勫垪鍚嶄负閿垨鍒楃储寮曚綔涓洪敭锛堜粠0寮濮嬶級銆
$params array SQL鎵ц鐨勮緭鍏ュ弬鏁(name=>value)銆傝繖鏄 bindParambindValue浜岄変竴鐨勩傚鏋滀綘鏈夊涓緭鍏ュ弬鏁帮紝 鐢ㄨ繖绉嶆柟寮忎紶閫掑畠浠兘鎻愰珮鎬ц兘銆傛敞鎰忓鏋滀綘鐢ㄨ繖绉嶆柟寮忎紶閫掑弬鏁, 浣犱笉鑳戒娇鐢 bindParambindValue缁戝畾鍙傛暟鎴栧硷紝鍙嶄箣浜︾劧銆 缁戝畾鏂规硶鍜岃緭鍏ュ弬鏁帮紝杩欐牱鍙互鎻愰珮鎬ц兘銆
{return} array 杩斿洖鏌ヨ缁撴灉涓殑鎵鏈夎銆傛瘡涓暟缁勫厓绱犳槸涓涓暟缁勶紝琛ㄧず涓琛屻 濡傛灉鏌ヨ缁撴灉涓虹┖锛岃繑鍥炵┖鏁扮粍銆
婧愮爜锛 framework/db/CDbCommand.php#388 (鏄剧ず)
public function queryAll($fetchAssociative=true,$params=array())
{
    return 
$this->queryInternal('fetchAll',$fetchAssociative $this->_fetchMode PDO::FETCH_NUM$params);
}

鎵цSQL璇彞骞惰繑鍥炴墍鏈夎銆

queryColumn() 鏂规硶
public array queryColumn(array $params=array ( ))
$params array SQL鎵ц鐨勮緭鍏ュ弬鏁(name=>value)銆傝繖鏄 bindParambindValue浜岄変竴鐨勩 濡傛灉浣犳湁澶氫釜杈撳叆鍙傛暟锛 鐢ㄨ繖绉嶆柟寮忎紶閫掑畠浠兘鎻愰珮鎬ц兘銆傛敞鎰忓鏋滀綘鐢ㄨ繖绉嶆柟寮忎紶閫掑弬鏁, 浣犱笉鑳戒娇鐢 bindParambindValue缁戝畾鍙傛暟鎴栧硷紝鍙嶄箣浜︾劧銆 缁戝畾鏂规硶鍜岃緭鍏ュ弬鏁帮紝杩欐牱鍙互鎻愰珮鎬ц兘銆
{return} array 杩斿洖鏌ヨ缁撴灉鐨勭涓鍒椼 濡傛灉娌℃湁缁撴灉涓虹┖鏁扮粍銆
婧愮爜锛 framework/db/CDbCommand.php#444 (鏄剧ず)
public function queryColumn($params=array())
{
    return 
$this->queryInternal('fetchAll',PDO::FETCH_COLUMN,$params);
}

鎵цSQL璇彞骞惰繑鍥炵粨鏋滅殑绗竴鍒椼 褰撳彧闇瑕佷竴涓肩殑鏃跺欙紝杩欎釜鏂规硶姣query鏇存柟渚匡紝 娉ㄦ剰锛岃繑鍥炵殑鍒楀皢鍖呭惈姣忎竴涓粨鏋滆鐨勭涓涓厓绱犮

queryRow() 鏂规硶
public mixed queryRow(boolean $fetchAssociative=true, array $params=array ( ))
$fetchAssociative boolean 鏄惁姣忎竴琛屽簲璇ヨ浣滀负涓涓叧鑱旀暟缁勮繑鍥烇紝 鍏宠仈鏁扮粍鐨勫垪鍚嶄负閿垨鍒楃储寮曚綔涓洪敭锛堜粠0寮濮嬶級銆
$params array SQL鎵ц鐨勮緭鍏ュ弬鏁 (name=>value)銆 杩欐槸 bindParambindValue浜岄変竴鐨勩 濡傛灉浣犳湁澶氫釜杈撳叆鍙傛暟锛岀敤杩欑鏂瑰紡浼犻掑畠浠兘鎻愰珮鎬ц兘銆傛敞鎰忓鏋滀綘鐢ㄨ繖绉嶆柟寮忎紶閫掑弬鏁, 浣犱笉鑳戒娇鐢 bindParambindValue缁戝畾鍙傛暟鎴栧硷紝鍙嶄箣浜︾劧銆 缁戝畾鏂规硶鍜岃緭鍏ュ弬鏁帮紝杩欐牱鍙互鎻愰珮鎬ц兘銆
{return} mixed the first row (in terms of an array) of the query result, false if no result.
婧愮爜锛 framework/db/CDbCommand.php#406 (鏄剧ず)
public function queryRow($fetchAssociative=true,$params=array())
{
    return 
$this->queryInternal('fetch',$fetchAssociative $this->_fetchMode PDO::FETCH_NUM$params);
}

鎵ц姝QL璇彞骞惰繑鍥炵粨鏋滅殑绗竴琛屻 褰撳彧闇瑕佺涓琛屾暟鎹椂锛岃繖涓柟娉曟瘮query鏇存柟渚裤

queryScalar() 鏂规硶
public mixed queryScalar(array $params=array ( ))
$params array SQL鎵ц鐨勮緭鍏ュ弬鏁 (name=>value)銆傝繖鏄 bindParambindValue浜岄変竴鐨勩 濡傛灉浣犳湁澶氫釜杈撳叆鍙傛暟锛 鐢ㄨ繖绉嶆柟寮忎紶閫掑畠浠兘鎻愰珮鎬ц兘銆傛敞鎰忓鏋滀綘鐢ㄨ繖绉嶆柟寮忎紶閫掑弬鏁, 浣犱笉鑳戒娇鐢 bindParambindValue缁戝畾鍙傛暟鎴栧硷紝鍙嶄箣浜︾劧銆 缁戝畾鏂规硶鍜岃緭鍏ュ弬鏁帮紝杩欐牱鍙互鎻愰珮鎬ц兘銆
{return} mixed 杩斿洖鏌ヨ缁撴灉鐨勭涓琛屾暟鎹殑绗竴鍒楃殑鍊笺傚鏋滄病鏈夊艰繑鍥濬alse銆
婧愮爜锛 framework/db/CDbCommand.php#423 (鏄剧ず)
public function queryScalar($params=array())
{
    
$result=$this->queryInternal('fetchColumn',0,$params);
    if(
is_resource($result) && get_resource_type($result)==='stream')
        return 
stream_get_contents($result);
    else
        return 
$result;
}

鎵ц姝QL璇彞骞惰繑鍥炵涓琛屾暟鎹殑绗竴鍒楃殑鍊笺 褰撳彧闇瑕佷竴涓肩殑鏃跺欙紝杩欎釜鏂规硶姣query鏇存柟渚匡紝 (渚嬪 鑾峰彇璁板綍鐨勬暟閲)銆

renameColumn() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer renameColumn(string $table, string $name, string $newName)
$table string 鍒楀皢琚噸鍛藉悕鐨勮〃銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$name string 姝ゅ垪鐨勬棫琛ㄥ悕銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
$newName string 姝ゅ垪鐨勬柊鍚嶅瓧銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1327 (鏄剧ず)
public function renameColumn($table$name$newName)
{
    return 
$this->setText($this->getConnection()->getSchema()->renameColumn($table$name$newName))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓洪噸鍛藉悕涓涓垪銆

renameTable() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer renameTable(string $table, string $newName)
$table string 瑕佽閲嶅懡鍚嶇殑琛ㄣ傛鍚嶇О灏嗚繖涓柟娉曟伆褰撶殑寮曠敤銆
$newName string 鏂扮殑琛ㄥ悕銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1261 (鏄剧ず)
public function renameTable($table$newName)
{
    return 
$this->setText($this->getConnection()->getSchema()->renameTable($table$newName))->execute();
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓洪噸鍛藉悕涓涓暟鎹〃銆

reset() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand reset()
{return} CDbCommand 杩斿洖杩欎釜鍛戒护瀹炰緥
婧愮爜锛 framework/db/CDbCommand.php#145 (鏄剧ず)
public function reset()
{
    
$this->_text=null;
    
$this->_query=null;
    
$this->_statement=null;
    
$this->_paramLog=array();
    
$this->params=array();
    return 
$this;
}

娓呯悊鍛戒护锛屽苟鍑嗗寤虹珛涓涓柊鐨勬煡璇€ 杩欎釜鏂规硶涓昏鐢ㄤ綔褰撲竴涓懡浠ゅ璞¤澶氭閲嶇敤鏃讹紝 寤虹珛涓嶅悓鐨勬煡璇€ 璋冪敤姝ゆ柟娉曞皢娓呴櫎鎵鏈夊懡浠ゅ璞$殑鍐呴儴鐘舵併

rightJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand rightJoin(string $table, mixed $conditions, array $params=array ( ))
$table string 瑕佽杩炴帴鐨勮〃銆 琛ㄥ彲鍖呭惈schema鍓嶇紑(渚嬪 鈥榩ublic.tbl_user鈥)鍜/鎴 琛ㄥ埆鍚 (渚嬪 鈥榯bl_user u鈥)銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝よ〃鍚嶏紝闄ら潪瀹冨寘鍚竴浜涘渾鎷彿 (杩欐剰鍛崇潃姝よ〃琚粰瀹氫綔涓轰竴涓瓙鏌ヨ鎴朌B琛ㄨ揪寮).
$conditions mixed 鍑虹幇鍦∣N閮ㄥ垎鐨刯oin鏉′欢銆 璇峰弬鑰where鍏充簬鎬庢牱鎸囧畾鏉′欢銆
$params array 缁戝畾鍒版鏌ヨ鐨勫弬鏁 (name=>value)
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#863 (鏄剧ず)
public function rightJoin($table$conditions$params=array())
{
    return 
$this->joinInternal('right join'$table$conditions$params);
}

闄勫姞涓涓猂IGHT OUTER JOIN閮ㄥ垎鍒版鏌ヨ銆

select() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand select(mixed $columns='*', string $option='')
$columns mixed 琚夋嫨鐨勫垪銆 榛樿鍊间负 '*'锛屾剰鎬濇槸鎵鏈夌殑鍒椼 鍒楄兘琚竴涓瓧绗︿覆鎸囧畾(渚嬪 "id, name")鎴栦竴涓暟缁(渚嬪 array('id', 'name')). 鍒楄兘鍖呭惈琛ㄥ墠缂(渚嬪 "tbl_user.id") 鍜/鎴 鍒楀埆鍚(渚嬪 "tbl_user.id AS user_id")銆 杩欎釜鏂规硶灏嗚嚜鍔ㄧ殑寮曠敤姝ゅ垪鍚嶏紝闄ら潪涓涓垪鍖呭惈涓浜涘渾鎷彿 (杩欐剰鍛崇潃姝ゅ垪鍖呭惈涓涓狣B琛ㄨ揪寮).
$option string 闄勫姞閫夋嫨搴旇琚檮鍔犲埌'SELECT'鍏抽敭瀛椼 渚嬪锛屽湪MySQL锛岄夐」'SQL_CALC_FOUND_ROWS'鑳借浣跨敤銆傝繖涓弬鏁拌嚜鐗堟湰1.1.8寮濮嬫敮鎸併
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#590 (鏄剧ず)
public function select($columns='*'$option='')
{
    if(
is_string($columns) && strpos($columns,'(')!==false)
        
$this->_query['select']=$columns;
    else
    {
        if(!
is_array($columns))
            
$columns=preg_split('/\s*,\s*/',trim($columns),-1,PREG_SPLIT_NO_EMPTY);

        foreach(
$columns as $i=>$column)
        {
            if(
is_object($column))
                
$columns[$i]=(string)$column;
            else if(
strpos($column,'(')===false)
            {
                if(
preg_match('/^(.*?)(?i:\s+as\s+|\s+)(.*)$/',$column,$matches))
                    
$columns[$i]=$this->_connection->quoteColumnName($matches[1]).' AS '.$this->_connection->quoteColumnName($matches[2]);
                else
                    
$columns[$i]=$this->_connection->quoteColumnName($column);
            }
        }
        
$this->_query['select']=implode(', ',$columns);
    }
    if(
$option!='')
        
$this->_query['select']=$option.' '.$this->_query['select'];
    return 
$this;
}

璁剧疆鏌ヨ鐨凷ELECT閮ㄥ垎銆

selectDistinct() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand selectDistinct(mixed $columns='*')
$columns mixed 琚夋嫨鐨勫垪锛屽弬瑙select涓烘洿澶氫俊鎭
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#646 (鏄剧ず)
public function selectDistinct($columns='*')
{
    
$this->_query['distinct']=true;
    return 
$this->select($columns);
}

璁剧疆姝ゆ煡璇㈢殑SELECT閮ㄥ垎锛屽甫鏈塂ISTINCT鏍囧織寮鍏炽 闄や簡DISTINCT鏍囧織寮鍏筹紝杩欎釜鍜select鏄竴鏍风殑銆

setDistinct() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setDistinct(boolean $value)
$value boolean 涓涓兼寚绀烘槸鍚ELECT搴旇琚娇鐢ㄣ
婧愮爜锛 framework/db/CDbCommand.php#667 (鏄剧ず)
public function setDistinct($value)
{
    
$this->_query['distinct']=$value;
}

璁剧疆涓涓兼寚绀烘槸鍚ELECT DISTINCT搴旇琚娇鐢ㄣ

setFetchMode() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.7锛
public CDbCommand setFetchMode(mixed $mode)
$mode mixed 璇诲彇妯″紡
{return} CDbCommand
婧愮爜锛 framework/db/CDbCommand.php#130 (鏄剧ず)
public function setFetchMode($mode)
{
    
$params=func_get_args();
    
$this->_fetchMode $params;
    return 
$this;
}

璁剧疆姝よ鍙ョ殑榛樿璇诲彇妯″紡銆

setFrom() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setFrom(mixed $value)
$value mixed 琚夋嫨鐨勮〃銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰from()鏇村缁嗚妭銆
婧愮爜锛 framework/db/CDbCommand.php#721 (鏄剧ず)
public function setFrom($value)
{
    
$this->from($value);
}

璁剧疆鏌ヨ鐨凢ROM閮ㄥ垎銆

setGroup() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setGroup(mixed $value)
$value mixed GROUP BY 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰 group() 鍏充簬鏇村缁嗚妭銆
婧愮爜锛 framework/db/CDbCommand.php#943 (鏄剧ず)
public function setGroup($value)
{
    
$this->group($value);
}

璁剧疆鏌ヨ鐨 GROUP BY 閮ㄥ垎銆

setHaving() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setHaving(mixed $value)
$value mixed HAVING 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰having()鏇村缁嗚妭銆
婧愮爜锛 framework/db/CDbCommand.php#980 (鏄剧ず)
public function setHaving($value)
{
    
$this->having($value);
}

璁剧疆鏌ヨ鐨 HAVING 閮ㄥ垎銆

setJoin() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setJoin(mixed $value)
$value mixed 鏌ヨ鐨刯oin閮ㄥ垎銆 杩欎釜鍙兘鏄竴涓瓧绗︿覆鎴栦竴涓暟缁勶紝浠h〃鏌ヨ涓涓猨oin閮ㄥ垎銆 姣忎竴閮ㄥ垎蹇呴』鍖呭惈鎭板綋鐨刯oin鍒朵綔绗(渚嬪 'LEFT JOIN tbl_profile ON tbl_user.id=tbl_profile.id')
婧愮爜锛 framework/db/CDbCommand.php#829 (鏄剧ず)
public function setJoin($value)
{
    
$this->_query['join']=$value;
}

璁剧疆鏌ヨ鐨刯oin閮ㄥ垎銆

setLimit() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setLimit(integer $value)
$value integer LIMIT 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰 limit() 涓烘洿澶氱粏鑺傘
婧愮爜锛 framework/db/CDbCommand.php#1071 (鏄剧ず)
public function setLimit($value)
{
    
$this->limit($value);
}

璁剧疆鏌ヨ鐨 LIMIT 閮ㄥ垎銆

setOffset() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setOffset(integer $value)
$value integer OFFSET 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰 offset() 涓烘洿澶氱粏鑺傘
婧愮爜锛 framework/db/CDbCommand.php#1104 (鏄剧ず)
public function setOffset($value)
{
    
$this->offset($value);
}

璁剧疆鏌ヨ鐨 OFFSET 閮ㄥ垎銆

setOrder() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setOrder(mixed $value)
$value mixed ORDER BY 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰 order() 涓烘洿澶氱粏鑺傘
婧愮爜锛 framework/db/CDbCommand.php#1035 (鏄剧ず)
public function setOrder($value)
{
    
$this->order($value);
}

璁剧疆鏌ヨ鐨 ORDER BY 閮ㄥ垎銆

setSelect() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setSelect(mixed $value)
$value mixed 琚夋嫨鐨勬暟鎹 璇峰弬鑰select()鎬庢牱鎸囧畾杩欎釜鍙傛暟鐨勬洿澶氱粏鑺傘
婧愮爜锛 framework/db/CDbCommand.php#634 (鏄剧ず)
public function setSelect($value)
{
    
$this->select($value);
}

璁剧疆鐨凷ELECT閮ㄥ垎銆

setText() 鏂规硶
public CDbCommand setText(string $value)
$value string 灏嗚鎵ц鐨凷QL璇彞
{return} CDbCommand 杩斿洖杩欎釜鍛戒护瀹炰緥
婧愮爜锛 framework/db/CDbCommand.php#171 (鏄剧ず)
public function setText($value)
{
    if(
$this->_connection->tablePrefix!==null && $value!='')
        
$this->_text=preg_replace('/{{(.*?)}}/',$this->_connection->tablePrefix.'\1',$value);
    else
        
$this->_text=$value;
    
$this->cancel();
    return 
$this;
}

鎸囧畾瑕佹墽琛岀殑SQL璇彞銆 涔嬪墠浠讳綍鏌ヨ閮戒細缁堟鎴栬呭彇娑堛

setUnion() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setUnion(mixed $value)
$value mixed UNION 閮ㄥ垎銆 杩欎釜鍙互鏄竴涓瓧绗︿覆鎴栦竴涓暟缁勮〃绀哄涓猄QL璇彞琚繛鎺ュ湪涓璧枫
婧愮爜锛 framework/db/CDbCommand.php#1142 (鏄剧ず)
public function setUnion($value)
{
    
$this->_query['union']=$value;
}

璁剧疆鏌ヨ鐨 UNION 閮ㄥ垎銆

setWhere() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public void setWhere(mixed $value)
$value mixed where 閮ㄥ垎銆 鍏充簬鎬庢牱鎸囧畾杩欎釜鍙傛暟璇峰弬鑰where()鏇村缁嗚妭銆
婧愮爜锛 framework/db/CDbCommand.php#788 (鏄剧ず)
public function setWhere($value)
{
    
$this->where($value);
}

璁剧疆鏌ヨ鐨 WHERE 閮ㄥ垎銆

truncateTable() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer truncateTable(string $table)
$table string 瑕佽娓呯┖鐨勮〃銆傛鍚嶇О灏嗚璇ユ柟娉曟伆褰撶殑寮曠敤銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1283 (鏄剧ず)
public function truncateTable($table)
{
    
$schema=$this->getConnection()->getSchema();
    
$n=$this->setText($schema->truncateTable($table))->execute();
    if(
strncasecmp($this->getConnection()->getDriverName(),'sqlite',6)===0)
        
$schema->resetSequence($schema->getTable($table));
    return 
$n;
}

缁戝畾骞舵墽琛屼竴鏉QL璇彞涓烘竻绌轰竴涓暟鎹〃銆

union() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand union(string $sql)
$sql string 浣跨敤UNION瑕侀檮鍔犵殑SQL璇彞銆
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#1115 (鏄剧ず)
public function union($sql)
{
    if(isset(
$this->_query['union']) && is_string($this->_query['union']))
        
$this->_query['union']=array($this->_query['union']);

    
$this->_query['union'][]=$sql;

    return 
$this;
}

闄勫姞涓涓猆NION鎿嶄綔绗﹀埌涓涓猄QL璇彞銆

update() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public integer update(string $table, array $columns, mixed $conditions='', array $params=array ( ))
$table string 瑕佹洿鏂扮殑琛ㄣ
$columns array 瑕佹洿鏂扮殑鍒楁暟鎹 (name=>value) 銆
$conditions mixed 鏀惧叆 WHERE 閮ㄥ垎鐨勬潯浠躲 璇峰弬鑰 where 鎬庢牱鎸囧畾鏉′欢銆
$params array 瑕佺粦瀹氬埌姝ゆ煡璇㈢殑鍙傛暟銆
{return} integer 杩斿洖姝ゆ搷浣滃奖鍝嶇殑琛屾暟銆
婧愮爜锛 framework/db/CDbCommand.php#1192 (鏄剧ず)
public function update($table$columns$conditions=''$params=array())
{
    
$lines=array();
    foreach(
$columns as $name=>$value)
    {
        if(
$value instanceof CDbExpression)
        {
            
$lines[]=$this->_connection->quoteColumnName($name) . '=' $value->expression;
            foreach(
$value->params as $n => $v)
                
$params[$n] = $v;
        }
        else
        {
            
$lines[]=$this->_connection->quoteColumnName($name) . '=:' $name;
            
$params[':' $name]=$value;
        }
    }
    
$sql='UPDATE ' $this->_connection->quoteTableName($table) . ' SET ' implode(', '$lines);
    if((
$where=$this->processConditions($conditions))!='')
        
$sql.=' WHERE '.$where;
    return 
$this->setText($sql)->execute($params);
}

鍒涘缓骞舵墽琛屼竴鏉PDATE SQL璇彞銆 璇ユ柟娉曞皢鎭板綋鐨勮浆涔夊垪鍚嶏紝骞剁粦瀹氳鏇存柊鐨勫笺

where() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.6锛
public CDbCommand where(mixed $conditions, array $params=array ( ))
$conditions mixed 鏀惧湪WHERE閮ㄥ垎鐨勬潯浠躲
$params array 缁戝畾鍒版鏌ヨ鐨勫弬鏁 (name=>value)
{return} CDbCommand 杩斿洖姝ゅ懡浠ゅ璞℃湰韬
婧愮爜锛 framework/db/CDbCommand.php#764 (鏄剧ず)
public function where($conditions$params=array())
{
    
$this->_query['where']=$this->processConditions($conditions);
    foreach(
$params as $name=>$value)
        
$this->params[$name]=$value;
    return 
$this;
}

璁剧疆鏌ヨ鐨刉HERE銆

杩欎釜鏂规硶瑕佹眰涓涓 $conditions 鍙傛暟鍜屼竴涓 $params 鍙傛暟锛 鎸囧畾鍊肩粦瀹氬埌鏌ヨ銆

$conditions 鍙傛暟鍙互鏄竴涓瓧绗︿覆(渚嬪 'id=1')鎴栦竴涓暟缁勩 濡傛灉鏄悗鑰咃紝瀹冨繀椤绘槸杩欑鏍煎紡 array(operator, operand1, operand2, ...), 鎿嶄綔绗﹀彲浠ユ槸涓嬮潰褰撲腑鐨勪竴涓紝鍙兘鐨勬搷浣滄暟渚濊禆浜庣浉搴旂殑鎿嶄綔绗 :

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