Yii Framework v1.1.10 绫诲弬鑰

CDbConnection

system.db
缁ф壙 class CDbConnection » CApplicationComponent » CComponent
瀹炵幇 IApplicationComponent
婧愯嚜 1.0
鐗堟湰 $Id: CDbConnection.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/db/CDbConnection.php
CDbConnection浠h〃涓涓埌鏁版嵁搴撶殑杩炴帴銆

CDbConnection涓CDbCommand, CDbDataReaderCDbTransaction涓璧锋彁渚涗簡鏍规嵁 DBMS 閫氱敤 API 鏉ヨ闂暟鎹姛鑳姐 瀹冧滑鏄PDO PHP 鎵╁睍鐨勭畝鍖栥

瑕佸缓绔嬩竴涓繛鎺ワ紝鍦ㄦ寚瀹connectionString, usernamepassword涔嬪悗锛 璁剧疆active涓簍rue锛屻

涓嬮潰鐨勪緥瀛愭樉绀轰簡鎬庢牱鍒涘缓涓涓狢DbConnection瀹炰緥鍜屽缓绔嬪疄闄呯殑杩炴帴锛 :
$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;


鍦―B杩炴帴寤虹珛涔嬪悗锛屽彲浠ユ墽琛屼竴涓儚涓嬮潰杩欐牱鐨 SQL 璇彞锛
$command=$connection->createCommand($sqlStatement);
$command->execute();   // a non-query SQL statement execution
// or execute an SQL query and fetch the result set
$reader=$command->query();

// each $row is an array representing a row of data
foreach($reader as $row) ...


涔熻兘鎵ц涓涓噯澶囧ソ鐨 SQL 璇彞锛屽苟缁戝畾鍙傛暟鍒板噯澶囧ソ鐨 SQL:
$command=$connection->createCommand($sqlStatement);
$command->bindParam($name1,$value1);
$command->bindParam($name2,$value2);
$command->execute();


瑕佷娇鐢ㄤ簨鍔★紝鍍忎笅闈㈣繖鏍峰仛锛
$transaction=$connection->beginTransaction();
try
{
   $connection->createCommand($sql1)->execute();
   $connection->createCommand($sql2)->execute();
   //.... other SQL executions
   $transaction->commit();
}
catch(Exception $e)
{
   $transaction->rollBack();
}


CDbConnection涔熸彁渚涗竴濂楁柟娉曟潵鏀寔璁剧疆鍜屾煡璇㈢壒瀹氱殑DBMS灞炴э紝 渚嬪 nullConversion

鍥犱负CDbConnection瀹炵幇浜咺ApplicationComponent鎺ュ彛锛屽畠鑳借鐢ㄤ綔涓涓簲鐢ㄧ▼搴忕粍浠讹紝 骞跺湪搴旂敤绋嬪簭涓繘琛岄厤缃 濡備笅锛
array(
    'components'=>array(
        'db'=>array(
            'class'=>'CDbConnection',
            'connectionString'=>'sqlite:path/to/dbfile',
        ),
    ),
)

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
active boolean 杩斿洖DB杩炴帴鏄惁宸茬粡寤虹珛銆 CDbConnection
attributes array 杩斿洖鍏堝墠涓烘暟鎹簱杩炴帴鏄惧紡璁剧疆鐨勫睘鎬с CDbConnection
autoCommit boolean 杩斿洖鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ CDbConnection
autoConnect boolean 鏁版嵁搴撴槸鍚﹀簲鑷姩寤虹珛杩炴帴 姝ょ粍浠跺皢琚垵濮嬪寲銆傞粯璁や负true銆傛敞鎰忥紝杩欎釜灞炴т粎浠呮湁鏁堟灉褰 CDbConnection瀵硅薄琚敤浣滀竴涓簲鐢ㄧ▼搴忕粍浠躲 CDbConnection
behaviors array 杩欎釜搴旂敤缁勪欢闄勫姞鐨勮涓恒 杩欐琛屼负灏嗗湪搴旂敤缁勪欢璋冪敤init鏃堕檮鍔犲湪搴旂敤缁勪欢涓娿 璇峰弬鐓CModel::behaviors濡備綍鎸囧畾姝ゅ睘鎬у笺 CApplicationComponent
charset string 鐢ㄤ簬鏁版嵁搴撹繛鎺harset瀛楃涓层傝繖涓睘鎬т粎浠呯敤浜 MySQL 鍜 PostgreSQL 鏁版嵁搴撱傞粯璁や负 null, 鎰忓懗鐫浣跨敤姝ゆ暟鎹簱鎸囧畾鐨勯粯璁ょ殑charset銆

娉ㄦ剰濡傛灉浣犱娇鐢 GBK 鎴 BIG5 锛岄偅涔堟帹鑽愭洿鏂板埌 PHP 5.
CDbConnection
clientVersion string 杩斿洖鏁版嵁搴撻┍鍔ㄧ▼搴忕殑鐗堟湰淇℃伅銆 CDbConnection
columnCase mixed 杩斿洖鍒楀悕绉扮殑澶у皬鍐欐儏鍐 CDbConnection
commandBuilder CDbCommandBuilder 杩斿洖涓哄綋鍓岲B杩炴帴鐨凷QL鍛戒护鐢熸垚鍣ㄣ CDbConnection
connectionStatus string 杩斿洖杩炴帴鐨勭姸鎬併 CDbConnection
connectionString string 鏁版嵁婧愬悕绉版垨 DSN锛屽寘鍚繛鎺ュ埌鏁版嵁搴撴墍闇鐨勪俊鎭 CDbConnection
currentTransaction CDbTransaction 杩斿洖褰撳墠娲诲姩鐨勪簨鍔° CDbConnection
driverMap array PDO椹卞姩绋嬪簭鍜宻chema绫诲悕涔嬮棿鐨勬槧灏勩 浣跨敤璺緞鍒悕鎸囧畾涓涓 schema 绫汇 CDbConnection
driverName string 杩斿洖鐨勬暟鎹簱椹卞姩绋嬪簭鐨勫悕绉般 CDbConnection
emulatePrepare boolean 鏄惁鎵撳紑鍑嗗妯℃嫙銆傞粯璁や负 false锛 鎰忓懗鐫PDO灏嗗噯澶囦娇鐢ㄦ湰鍦伴澶囨敮鎸侊紝濡傛灉鍙敤銆傚浜庢煇浜涙暟鎹簱 (濡 MySQL), 杩欏皢闇瑕佽缃负true 浠ヨ嚦浜 PDO 鑳芥ā鎷熻棰勫鏀寔 缁曡繃buggy鏈湴棰勫鏀寔銆傛敞鎰忥紝杩欎釜灞炴т粎浠呭湪PHP 5. CDbConnection
enableParamLogging boolean 鏄惁璁板綍鐨勫肩粦瀹氬埌涓涓噯澶囩殑SQL璇彞銆 榛樿涓 false銆傚湪寮鍙戦樁娈碉紝浣犲簲璇ヨ冭檻璁剧疆杩欎釜灞炴т负true 浠ヨ嚦浜庡弬鏁板艰兘琚粦瀹氬埌SQL璇彞浠ヨ褰曠敤浜庨珮搴︾洰鐨勩 浣犲簲璇ョ煡閬撹褰曞弬鏁板间唬浠锋槸楂樻槀鐨勶紝 灏嗗緢澶х▼搴﹀奖鍝嶄綘鐨勫簲鐢ㄧ▼搴忕殑鎬ц兘銆 CDbConnection
enableProfiling boolean 姝e湪鎵ц鐨凷QL璇彞鏄惁鍚敤鍒嗘瀽銆 榛樿涓 false銆傝繖涓富瑕 鍚敤瀹冧富瑕佺敤浜庡紑鍙戦樁娈垫壘鍑篠QL鎵ц鐨勭摱棰堛 CDbConnection
initSQLs array DB杩炴帴寤虹珛鍚庢墽琛岀殑SQL璇彞鍒楄〃銆 CDbConnection
isInitialized boolean 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
lastInsertID string 杩斿洖鏈鍚庝竴涓彃鍏ョ殑琛岀殑ID鎴栧簭鍒楀笺 CDbConnection
nullConversion mixed 杩斿洖null涓巈mpty瀛楃涓插浣曡浆鍖栫殑鎯呭喌銆 CDbConnection
password string 寤虹珛鏁版嵁杩炴帴鐨勫瘑鐮併傞粯璁や负绌哄瓧绗︿覆銆 CDbConnection
pdoClass string 鑷畾涔塒DO灏佽绫汇 CDbConnection
pdoInstance PDO 杩斿洖PDO瀹炰緥銆 CDbConnection
persistent boolean 杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚︽寔涔呯殑銆 CDbConnection
prefetch boolean 杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚﹀彲鎵ц鏁版嵁棰勮幏鍙栥 CDbConnection
queryCacheID string 缂撳瓨搴旂敤绋嬪簭缁勪欢鐨処D锛岀敤浜庢煡璇㈢紦瀛樸 榛樿涓'cache'锛屽畠鎸囩殑鏄富缂撳瓨搴旂敤绋嬪簭缁勪欢銆 璁剧疆杩欎釜灞炴т负false锛屽鏋滀綘鎯崇鐢ㄦ煡璇㈢紦瀛樸 CDbConnection
queryCachingCount integer 涓嬫灏嗚缂撳瓨鐨凷QL璇彞鐨勬暟鐩 濡傛灉瀹冩槸 0锛屽嵆浣挎煡璇㈢紦瀛樿鍚敤锛屾煡璇篃涓嶄細琚紦瀛樸 娉ㄦ剰姣忔鎵ц涓鏉QL璇彞涔嬪悗 (鏄惁鍦―B鏈嶅姟鍣ㄤ笂鎵ц鎴栦粠鏌ヨ缂撳瓨涓幏鍙)锛 杩欎釜灞炴у皢琚噺灏1鑷0銆 CDbConnection
queryCachingDependency CCacheDependency 褰撴煡璇㈢粨鏋滀繚瀛樺埌缂撳瓨鏃讹紝浣跨敤鐨勪緷璧栥 CDbConnection
queryCachingDuration integer 鏌ヨ缁撴灉琚繚鐣欏湪缂撳瓨涓湁鏁堢殑绉掓暟銆 浣跨敤0鎴栬礋鏁板兼寚绀轰笉缂撳瓨鏌ヨ缁撴灉 (榛樿 behavior). CDbConnection
schema CDbSchema 杩斿洖褰撳墠杩炴帴鐨勬暟鎹簱缁撴瀯 CDbConnection
schemaCacheID string 缂撳瓨搴旂敤绋嬪簭缁勪欢鐨処D锛岀敤浜庣紦瀛樿〃鐨勫厓鏁版嵁銆 榛樿涓'cache' 瀹冩寚鐨勬槸涓荤紦瀛樺簲鐢ㄧ▼搴忕粍浠躲 濡傛灉瑕佺鐢ㄧ紦瀛樿〃鐨勫厓鏁版嵁锛屾灞炴ц缃负false銆 CDbConnection
schemaCachingDuration integer 鏁版嵁琛ㄤ腑鍏冩暟鎹湪缂撳瓨涓繚瀛樼殑绉掗挓鏁般 浣跨敤0鎴栬礋鍊兼寚绀轰笉缂撳瓨schema銆 濡傛灉澶т簬0鍜屾鏁帮紝cache琚惎鐢紝琛ㄧ殑鍏冩暟鎹皢琚紦瀛樸 CDbConnection
schemaCachingExclude array 鍏冩暟鎹笉琚紦瀛樼殑鍒楃殑鍒楄〃銆傞粯璁や负绌哄瓧绗︿覆銆 CDbConnection
serverInfo string 杩斿洖DBMS鏈嶅姟鍣ㄧ殑淇℃伅銆 CDbConnection
serverVersion string 杩斿洖DBMS鏈嶅姟鍣ㄧ殑鐗堟湰淇℃伅銆 CDbConnection
stats array 杩斿洖SQL鎵ц鐨勭粺璁$粨鏋溿 CDbConnection
tablePrefix string 琛ㄥ悕绉扮殑榛樿鍓嶇紑銆傞粯璁や负 null锛屾剰鍛崇潃娌℃湁琛ㄥ墠缂銆 閫氳繃璁剧疆杩欎釜灞炴э紝浠讳綍鏍囪鍍 '{{tableName}}' 鍦 CDbCommand::text 灏 'prefixTableName'鏇挎崲锛 杩欓噷 'prefix' 鎸囩殑鏄繖涓睘鎬у笺 CDbConnection
timeout integer 杩斿洖杩炴帴鐨勮秴鏃惰缃 CDbConnection
username string 寤虹珛鏁版嵁杩炴帴鐨勭敤鎴峰悕銆傞粯璁や负绌哄瓧绗︿覆銆 CDbConnection

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲嚱鏁般 CDbConnection
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__sleep() 搴忓垪鍖栨椂鍏抽棴杩炴帴銆 CDbConnection
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
beginTransaction() 鍚姩浜嬪姟銆 CDbConnection
cache() 璁剧疆鍏充簬鏌ヨ缂撳瓨鐨勫弬鏁般 CDbConnection
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
createCommand() 鍒涘缓鐢ㄤ簬鎵ц鐨勫懡浠ゃ CDbConnection
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getActive() 杩斿洖DB杩炴帴鏄惁宸茬粡寤虹珛銆 CDbConnection
getAttribute() 鑾峰彇鎸囧畾鐨勬暟鎹簱杩炴帴灞炴т俊鎭 CDbConnection
getAttributes() 杩斿洖鍏堝墠涓烘暟鎹簱杩炴帴鏄惧紡璁剧疆鐨勫睘鎬с CDbConnection
getAutoCommit() 杩斿洖鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ CDbConnection
getAvailableDrivers() 杩斿洖涓涓彲鐢ㄧ殑PDO椹卞姩绋嬪簭鐨勫垪琛ㄣ CDbConnection
getClientVersion() 杩斿洖鏁版嵁搴撻┍鍔ㄧ▼搴忕殑鐗堟湰淇℃伅銆 CDbConnection
getColumnCase() 杩斿洖鍒楀悕绉扮殑澶у皬鍐欐儏鍐 CDbConnection
getCommandBuilder() 杩斿洖涓哄綋鍓岲B杩炴帴鐨凷QL鍛戒护鐢熸垚鍣ㄣ CDbConnection
getConnectionStatus() 杩斿洖杩炴帴鐨勭姸鎬併 CDbConnection
getCurrentTransaction() 杩斿洖褰撳墠娲诲姩鐨勪簨鍔° CDbConnection
getDriverName() 杩斿洖鐨勬暟鎹簱椹卞姩绋嬪簭鐨勫悕绉般 CDbConnection
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getIsInitialized() 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
getLastInsertID() 杩斿洖鏈鍚庝竴涓彃鍏ョ殑琛岀殑ID鎴栧簭鍒楀笺 CDbConnection
getNullConversion() 杩斿洖null涓巈mpty瀛楃涓插浣曡浆鍖栫殑鎯呭喌銆 CDbConnection
getPdoInstance() 杩斿洖PDO瀹炰緥銆 CDbConnection
getPdoType() 鎸囧畾鐨凱HP鏁版嵁绫诲瀷鍐冲畾PDO鏁版嵁绫诲瀷銆 CDbConnection
getPersistent() 杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚︽寔涔呯殑銆 CDbConnection
getPrefetch() 杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚﹀彲鎵ц鏁版嵁棰勮幏鍙栥 CDbConnection
getSchema() 杩斿洖褰撳墠杩炴帴鐨勬暟鎹簱缁撴瀯 CDbConnection
getServerInfo() 杩斿洖DBMS鏈嶅姟鍣ㄧ殑淇℃伅銆 CDbConnection
getServerVersion() 杩斿洖DBMS鏈嶅姟鍣ㄧ殑鐗堟湰淇℃伅銆 CDbConnection
getStats() 杩斿洖SQL鎵ц鐨勭粺璁$粨鏋溿 CDbConnection
getTimeout() 杩斿洖杩炴帴鐨勮秴鏃惰缃 CDbConnection
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栫粍浠躲 CDbConnection
quoteColumnName() 鍦ㄤ竴涓煡璇腑寮曠敤涓涓垪鍚嶇О銆 CDbConnection
quoteTableName() 鍦ㄤ竴涓煡璇腑寮曠敤鐨勮〃鍚嶃 CDbConnection
quoteValue() 鍦ㄤ竴涓煡璇腑寮曠敤涓涓瓧绗︿覆鍊笺 CDbConnection
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
setActive() 鎵撳紑鎴栧叧闂璂B杩炴帴銆 CDbConnection
setAttribute() 璁剧疆鏁版嵁搴撹繛鎺ヤ笂鐨勪竴涓睘鎬с CDbConnection
setAttributes() 璁剧疆涓濂楁暟鎹簱杩炴帴鐨勫睘鎬с CDbConnection
setAutoCommit() 璁剧疆鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ CDbConnection
setColumnCase() 璁剧疆鍒楀悕绉扮殑澶у皬鍐欍 CDbConnection
setNullConversion() 璁剧疆null鍜宔mpty 瀛楃涓插浣曡浆鎹€ CDbConnection
setPersistent() 璁剧疆姝よ繛鎺ユ槸鍚︽槸鎸佷箙杩炴帴銆 CDbConnection

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
close() 鍏抽棴褰撳墠杩炴帴鐨勬暟鎹簱杩炴帴銆 CDbConnection
createPdoInstance() 鍒涘缓涓涓 PDO 瀹炰緥銆 CDbConnection
initConnection() 鍒濆鍖栧紑鏀炬暟鎹簱杩炴帴銆 CDbConnection
open() 鎵撳紑鏁版嵁搴撹繛鎺ワ紝濡傛灉瀹冨綋鍓嶆病鏈夋墦寮 CDbConnection

灞炴ц缁

active 灞炴
public boolean getActive()
public void setActive(boolean $value)

杩斿洖DB杩炴帴鏄惁宸茬粡寤虹珛銆

attributes 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public array getAttributes()
public void setAttributes(array $values)

杩斿洖鍏堝墠涓烘暟鎹簱杩炴帴鏄惧紡璁剧疆鐨勫睘鎬с

鍙傝

autoCommit 灞炴
public boolean getAutoCommit()
public void setAutoCommit(boolean $value)

杩斿洖鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

autoConnect 灞炴
public boolean $autoConnect;

鏁版嵁搴撴槸鍚﹀簲鑷姩寤虹珛杩炴帴 姝ょ粍浠跺皢琚垵濮嬪寲銆傞粯璁や负true銆傛敞鎰忥紝杩欎釜灞炴т粎浠呮湁鏁堟灉褰 CDbConnection瀵硅薄琚敤浣滀竴涓簲鐢ㄧ▼搴忕粍浠躲

charset 灞炴
public string $charset;

鐢ㄤ簬鏁版嵁搴撹繛鎺harset瀛楃涓层傝繖涓睘鎬т粎浠呯敤浜 MySQL 鍜 PostgreSQL 鏁版嵁搴撱傞粯璁や负 null, 鎰忓懗鐫浣跨敤姝ゆ暟鎹簱鎸囧畾鐨勯粯璁ょ殑charset銆

娉ㄦ剰濡傛灉浣犱娇鐢 GBK 鎴 BIG5 锛岄偅涔堟帹鑽愭洿鏂板埌 PHP 5.3.6+鍜岄氳繃DSN鎸囧畾 charset 鍍忎笅闈㈣繖鏍 'mysql:dbname=mydatabase;host=127.0.0.1;charset=GBK;'銆

clientVersion 灞炴 鍙
public string getClientVersion()

杩斿洖鏁版嵁搴撻┍鍔ㄧ▼搴忕殑鐗堟湰淇℃伅銆

columnCase 灞炴
public mixed getColumnCase()
public void setColumnCase(mixed $value)

杩斿洖鍒楀悕绉扮殑澶у皬鍐欐儏鍐

commandBuilder 灞炴 鍙

杩斿洖涓哄綋鍓岲B杩炴帴鐨凷QL鍛戒护鐢熸垚鍣ㄣ

connectionStatus 灞炴 鍙
public string getConnectionStatus()

杩斿洖杩炴帴鐨勭姸鎬併 涓浜 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

connectionString 灞炴
public string $connectionString;

鏁版嵁婧愬悕绉版垨 DSN锛屽寘鍚繛鎺ュ埌鏁版嵁搴撴墍闇鐨勪俊鎭

currentTransaction 灞炴 鍙

杩斿洖褰撳墠娲诲姩鐨勪簨鍔°

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

PDO椹卞姩绋嬪簭鍜宻chema绫诲悕涔嬮棿鐨勬槧灏勩 浣跨敤璺緞鍒悕鎸囧畾涓涓 schema 绫汇

driverName 灞炴 鍙
public string getDriverName()

杩斿洖鐨勬暟鎹簱椹卞姩绋嬪簭鐨勫悕绉般

emulatePrepare 灞炴
public boolean $emulatePrepare;

鏄惁鎵撳紑鍑嗗妯℃嫙銆傞粯璁や负 false锛 鎰忓懗鐫PDO灏嗗噯澶囦娇鐢ㄦ湰鍦伴澶囨敮鎸侊紝濡傛灉鍙敤銆傚浜庢煇浜涙暟鎹簱 (濡 MySQL), 杩欏皢闇瑕佽缃负true 浠ヨ嚦浜 PDO 鑳芥ā鎷熻棰勫鏀寔 缁曡繃buggy鏈湴棰勫鏀寔銆傛敞鎰忥紝杩欎釜灞炴т粎浠呭湪PHP 5.1.3鍙婁互涓婃湁鏁堛 榛樿鍊间负 null锛岃繖灏嗕笉鏀瑰彉PDO鐨 ATTR_EMULATE_PREPARES 鍊笺

enableParamLogging 灞炴
public boolean $enableParamLogging;

鏄惁璁板綍鐨勫肩粦瀹氬埌涓涓噯澶囩殑SQL璇彞銆 榛樿涓 false銆傚湪寮鍙戦樁娈碉紝浣犲簲璇ヨ冭檻璁剧疆杩欎釜灞炴т负true 浠ヨ嚦浜庡弬鏁板艰兘琚粦瀹氬埌SQL璇彞浠ヨ褰曠敤浜庨珮搴︾洰鐨勩 浣犲簲璇ョ煡閬撹褰曞弬鏁板间唬浠锋槸楂樻槀鐨勶紝 灏嗗緢澶х▼搴﹀奖鍝嶄綘鐨勫簲鐢ㄧ▼搴忕殑鎬ц兘銆

enableProfiling 灞炴
public boolean $enableProfiling;

姝e湪鎵ц鐨凷QL璇彞鏄惁鍚敤鍒嗘瀽銆 榛樿涓 false銆傝繖涓富瑕 鍚敤瀹冧富瑕佺敤浜庡紑鍙戦樁娈垫壘鍑篠QL鎵ц鐨勭摱棰堛

initSQLs 灞炴 锛堝彲鐢ㄨ嚜 v1.1.1锛
public array $initSQLs;

DB杩炴帴寤虹珛鍚庢墽琛岀殑SQL璇彞鍒楄〃銆

lastInsertID 灞炴 鍙
public string getLastInsertID(string $sequenceName='')

杩斿洖鏈鍚庝竴涓彃鍏ョ殑琛岀殑ID鎴栧簭鍒楀笺

nullConversion 灞炴
public mixed getNullConversion()
public void setNullConversion(mixed $value)

杩斿洖null涓巈mpty瀛楃涓插浣曡浆鍖栫殑鎯呭喌銆

password 灞炴
public string $password;

寤虹珛鏁版嵁杩炴帴鐨勫瘑鐮併傞粯璁や负绌哄瓧绗︿覆銆

pdoClass 灞炴 锛堝彲鐢ㄨ嚜 v1.1.8锛
public string $pdoClass;

鑷畾涔塒DO灏佽绫汇

pdoInstance 灞炴 鍙
public PDO getPdoInstance()

杩斿洖PDO瀹炰緥銆

persistent 灞炴
public boolean getPersistent()
public void setPersistent(boolean $value)

杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚︽寔涔呯殑銆 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

prefetch 灞炴 鍙
public boolean getPrefetch()

杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚﹀彲鎵ц鏁版嵁棰勮幏鍙栥

queryCacheID 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public string $queryCacheID;

缂撳瓨搴旂敤绋嬪簭缁勪欢鐨処D锛岀敤浜庢煡璇㈢紦瀛樸 榛樿涓'cache'锛屽畠鎸囩殑鏄富缂撳瓨搴旂敤绋嬪簭缁勪欢銆 璁剧疆杩欎釜灞炴т负false锛屽鏋滀綘鎯崇鐢ㄦ煡璇㈢紦瀛樸

queryCachingCount 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public integer $queryCachingCount;

涓嬫灏嗚缂撳瓨鐨凷QL璇彞鐨勬暟鐩 濡傛灉瀹冩槸 0锛屽嵆浣挎煡璇㈢紦瀛樿鍚敤锛屾煡璇篃涓嶄細琚紦瀛樸 娉ㄦ剰姣忔鎵ц涓鏉QL璇彞涔嬪悗 (鏄惁鍦―B鏈嶅姟鍣ㄤ笂鎵ц鎴栦粠鏌ヨ缂撳瓨涓幏鍙)锛 杩欎釜灞炴у皢琚噺灏1鑷0銆

queryCachingDependency 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public CCacheDependency $queryCachingDependency;

褰撴煡璇㈢粨鏋滀繚瀛樺埌缂撳瓨鏃讹紝浣跨敤鐨勪緷璧栥

queryCachingDuration 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public integer $queryCachingDuration;

鏌ヨ缁撴灉琚繚鐣欏湪缂撳瓨涓湁鏁堢殑绉掓暟銆 浣跨敤0鎴栬礋鏁板兼寚绀轰笉缂撳瓨鏌ヨ缁撴灉 (榛樿 behavior).

涓轰簡鍚敤鏌ヨ缂撳瓨锛岃繖涓睘鎬у繀椤昏璁剧疆涓烘鏁般 骞朵笖 queryCacheID 蹇呴』鎸囧悜涓涓湁鏁堢殑缂撳瓨缁勪欢 ID銆

璇ユ柟娉cache() 鎻愪緵涓绉嶆柟渚跨殑鏂规硶璁剧疆姝ゅ睘鎬 鍜 queryCachingDependency

schema 灞炴 鍙

杩斿洖褰撳墠杩炴帴鐨勬暟鎹簱缁撴瀯

schemaCacheID 灞炴
public string $schemaCacheID;

缂撳瓨搴旂敤绋嬪簭缁勪欢鐨処D锛岀敤浜庣紦瀛樿〃鐨勫厓鏁版嵁銆 榛樿涓'cache' 瀹冩寚鐨勬槸涓荤紦瀛樺簲鐢ㄧ▼搴忕粍浠躲 濡傛灉瑕佺鐢ㄧ紦瀛樿〃鐨勫厓鏁版嵁锛屾灞炴ц缃负false銆

schemaCachingDuration 灞炴
public integer $schemaCachingDuration;

鏁版嵁琛ㄤ腑鍏冩暟鎹湪缂撳瓨涓繚瀛樼殑绉掗挓鏁般 浣跨敤0鎴栬礋鍊兼寚绀轰笉缂撳瓨schema銆 濡傛灉澶т簬0鍜屾鏁帮紝cache琚惎鐢紝琛ㄧ殑鍏冩暟鎹皢琚紦瀛樸

schemaCachingExclude 灞炴
public array $schemaCachingExclude;

鍏冩暟鎹笉琚紦瀛樼殑鍒楃殑鍒楄〃銆傞粯璁や负绌哄瓧绗︿覆銆

serverInfo 灞炴 鍙
public string getServerInfo()

杩斿洖DBMS鏈嶅姟鍣ㄧ殑淇℃伅銆

serverVersion 灞炴 鍙
public string getServerVersion()

杩斿洖DBMS鏈嶅姟鍣ㄧ殑鐗堟湰淇℃伅銆

stats 灞炴 鍙
public array getStats()

杩斿洖SQL鎵ц鐨勭粺璁$粨鏋溿 杩斿洖鐨勭粨鏋滃寘鍚墽琛孲QL璇彞鐨勬暟鐩拰 鎵鑺辫垂鐨勬绘椂闂淬 涓轰簡浣跨敤姝ゆ柟娉曪紝enableProfiling蹇呴』璁剧疆涓 true銆

tablePrefix 灞炴 锛堝彲鐢ㄨ嚜 v1.1.0锛
public string $tablePrefix;

琛ㄥ悕绉扮殑榛樿鍓嶇紑銆傞粯璁や负 null锛屾剰鍛崇潃娌℃湁琛ㄥ墠缂銆 閫氳繃璁剧疆杩欎釜灞炴э紝浠讳綍鏍囪鍍 '{{tableName}}' 鍦 CDbCommand::text 灏 'prefixTableName'鏇挎崲锛 杩欓噷 'prefix' 鎸囩殑鏄繖涓睘鎬у笺

timeout 灞炴 鍙
public integer getTimeout()

杩斿洖杩炴帴鐨勮秴鏃惰缃

username 灞炴
public string $username;

寤虹珛鏁版嵁杩炴帴鐨勭敤鎴峰悕銆傞粯璁や负绌哄瓧绗︿覆銆

鏂规硶璇︾粏

__construct() 鏂规硶
public void __construct(string $dsn='', string $username='', string $password='')
$dsn string 鏁版嵁婧愬悕绉帮紝鎴 DSN锛屽寘鍚繛鎺ュ埌鏁版嵁搴撴墍闇鐨勪俊鎭
$username string DSN 瀛楃涓茬殑鐢ㄦ埛鍚嶃
$password string DSN 瀛楃涓茬殑瀵嗙爜銆
婧愮爜锛 framework/db/CDbConnection.php#271 (鏄剧ず)
public function __construct($dsn='',$username='',$password='')
{
    
$this->connectionString=$dsn;
    
$this->username=$username;
    
$this->password=$password;
}

鏋勯犲嚱鏁般 娉ㄦ剰锛屽綋杩炴帴瀹炰緥鍒涘缓鐨勬椂鍊欙紝骞朵笉浼氳繛鎺ユ暟鎹簱銆 璁剧疆 active 灞炴т负true锛 鏉ュ缓绔嬫杩炴帴銆

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

搴忓垪鍖栨椂鍏抽棴杩炴帴銆

beginTransaction() 鏂规硶
public CDbTransaction beginTransaction()
{return} CDbTransaction 杩斿洖浜嬪姟鍚姩
婧愮爜锛 framework/db/CDbConnection.php#490 (鏄剧ず)
public function beginTransaction()
{
    
Yii::trace('Starting transaction','system.db.CDbConnection');
    
$this->setActive(true);
    
$this->_pdo->beginTransaction();
    return 
$this->_transaction=new CDbTransaction($this);
}

鍚姩浜嬪姟銆

cache() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.7锛
public CDbConnection cache(integer $duration, CCacheDependency $dependency=NULL, integer $queryCount=1)
$duration integer 鏌ヨ缁撴灉淇濇寔鍦ㄧ紦瀛樹腑鏈夋晥鐨勭鏁般 濡傛灉瀹冩槸0锛岀紦瀛樺皢琚鐢ㄣ
$dependency CCacheDependency 褰撴煡璇㈢粨鏋滀繚瀛樺埌缂撳瓨鏃讹紝浣跨敤鐨勪緷璧栥
$queryCount integer 鍦ㄨ皟鐢ㄦ鏂规硶鍚庯紝闇瑕佺紦瀛樼殑SQL鏌ヨ鐨勬暟鐩 榛樿涓 1锛屾剰鍛崇潃涓嬩竴鏉QL鏌ヨ灏嗚缂撳瓨銆
{return} CDbConnection 杩斿洖杩炴帴瀹炰緥鏈韩銆
婧愮爜锛 framework/db/CDbConnection.php#353 (鏄剧ず)
public function cache($duration$dependency=null$queryCount=1)
{
    
$this->queryCachingDuration=$duration;
    
$this->queryCachingDependency=$dependency;
    
$this->queryCachingCount=$queryCount;
    return 
$this;
}

璁剧疆鍏充簬鏌ヨ缂撳瓨鐨勫弬鏁般 姝ゆ柟娉曞彲鐢ㄤ簬鍚敤鎴栫鐢ㄦ煡璇㈢紦瀛樸 閫氳繃璁剧疆$duration鍙傛暟涓0锛屾煡璇㈢紦瀛樺皢琚鐢ㄣ 瑕佷笉鐒讹紝 鏂扮殑SQL璇彞鎵ц鐨勬煡璇㈢粨鏋滃皢琚繚瀛樺湪缂撳瓨涓紝 骞朵笖鍦ㄦ寚瀹氭椂闂存鍐呮湁鏁堛 濡傛灉鍚屾牱鐨勬煡璇㈠啀娆℃墽琛岋紝缁撴灉灏嗙洿鎺ヤ粠缂撳瓨涓鍙栵紝 鑰屼笉鏄墽琛屽疄闄呯殑SQL璇彞銆

close() 鏂规硶
protected void close()
婧愮爜锛 framework/db/CDbConnection.php#398 (鏄剧ず)
protected function close()
{
    
Yii::trace('Closing DB connection','system.db.CDbConnection');
    
$this->_pdo=null;
    
$this->_active=false;
    
$this->_schema=null;
}

鍏抽棴褰撳墠杩炴帴鐨勬暟鎹簱杩炴帴銆 濡傛灉杩炴帴宸茬粡鍏抽棴锛屽畠涓嶆墽琛屼换浣曟搷浣溿

createCommand() 鏂规硶
public CDbCommand createCommand(mixed $query=NULL)
$query mixed 瑕佹墽琛岀殑DB鏌ヨ銆傝繖鍙互鏄竴涓瓧绗︿覆锛岃〃绀轰竴涓猄QL璇彞锛 鎴栦竴涓暟缁勶紝瀹冭〃绀篠QL璇彞鐨勪笉鍚岀墖娈点傝鍙傞槄 CDbCommand::__construct 鏈夊叧鏇村璇︾粏淇℃伅鏈夊叧濡備綍灏嗘暟缁勪綔涓烘煡璇€傚鏋滆繖涓弬鏁版病鏈夌粰瀹氾紝 浣犲繀椤昏皟鐢ㄦ煡璇㈢敓鎴愬櫒鐨 CDbCommand 鏂规硶鍘诲缓绔嬫暟鎹簱鏌ヨ銆
{return} CDbCommand 鏁版嵁搴撳懡浠
婧愮爜锛 framework/db/CDbConnection.php#466 (鏄剧ず)
public function createCommand($query=null)
{
    
$this->setActive(true);
    return new 
CDbCommand($this,$query);
}

鍒涘缓鐢ㄤ簬鎵ц鐨勫懡浠ゃ

createPdoInstance() 鏂规硶
protected PDO createPdoInstance()
{return} PDO 杩斿洖pdo瀹炰緥
婧愮爜锛 framework/db/CDbConnection.php#412 (鏄剧ず)
protected function createPdoInstance()
{
    
$pdoClass=$this->pdoClass;
    if((
$pos=strpos($this->connectionString,':'))!==false)
    {
        
$driver=strtolower(substr($this->connectionString,0,$pos));
        if(
$driver==='mssql' || $driver==='dblib' || $driver==='sqlsrv')
            
$pdoClass='CMssqlPdoAdapter';
    }
    return new 
$pdoClass($this->connectionString,$this->username,
                                
$this->password,$this->_attributes);
}

鍒涘缓涓涓 PDO 瀹炰緥銆 pdo椹卞姩绋嬪簭涓己灏戞煇浜涘姛鑳芥椂锛 鎴戜滑鍙互浣跨敤涓涓傞厤鍣ㄧ被锛屼互鎻愪緵瀹冧滑銆

getActive() 鏂规硶
public boolean getActive()
{return} boolean 杩斿洖DB杩炴帴鏄惁宸茬粡寤虹珛
婧愮爜锛 framework/db/CDbConnection.php#316 (鏄剧ず)
public function getActive()
{
    return 
$this->_active;
}

杩斿洖DB杩炴帴鏄惁宸茬粡寤虹珛銆

getAttribute() 鏂规硶
public mixed getAttribute(integer $name)
$name integer 瑕佹煡璇㈢殑灞炴с
{return} mixed 鐩稿簲鐨勫睘鎬т俊鎭
婧愮爜锛 framework/db/CDbConnection.php#747 (鏄剧ず)
public function getAttribute($name)
{
    
$this->setActive(true);
    return 
$this->_pdo->getAttribute($name);
}

鑾峰彇鎸囧畾鐨勬暟鎹簱杩炴帴灞炴т俊鎭

getAttributes() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.7锛
public array getAttributes()
{return} array 杩斿洖鍏堝墠涓烘暟鎹簱杩炴帴鏄惧紡璁剧疆鐨勫睘鎬(name=>value)銆
婧愮爜锛 framework/db/CDbConnection.php#773 (鏄剧ず)
public function getAttributes()
{
    return 
$this->_attributes;
}

杩斿洖鍏堝墠涓烘暟鎹簱杩炴帴鏄惧紡璁剧疆鐨勫睘鎬с

鍙傝

getAutoCommit() 鏂规硶
public boolean getAutoCommit()
{return} boolean 杩斿洖鏄惁鍒涘缓鎴栨洿鏂癉B璁板綍灏嗚嚜鍔ㄦ彁浜ゃ
婧愮爜锛 framework/db/CDbConnection.php#640 (鏄剧ず)
public function getAutoCommit()
{
    return 
$this->getAttribute(PDO::ATTR_AUTOCOMMIT);
}

杩斿洖鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

getAvailableDrivers() 鏂规硶
public static array getAvailableDrivers()
{return} array 杩斿洖涓涓彲鐢ㄧ殑PDO椹卞姩绋嬪簭鐨勫垪琛
婧愮爜锛 framework/db/CDbConnection.php#293 (鏄剧ず)
public static function getAvailableDrivers()
{
    return 
PDO::getAvailableDrivers();
}

杩斿洖涓涓彲鐢ㄧ殑PDO椹卞姩绋嬪簭鐨勫垪琛ㄣ

getClientVersion() 鏂规硶
public string getClientVersion()
{return} string 杩斿洖鏁版嵁搴撻┍鍔ㄧ▼搴忕殑鐗堟湰淇℃伅
婧愮爜锛 framework/db/CDbConnection.php#690 (鏄剧ず)
public function getClientVersion()
{
    return 
$this->getAttribute(PDO::ATTR_CLIENT_VERSION);
}

杩斿洖鏁版嵁搴撻┍鍔ㄧ▼搴忕殑鐗堟湰淇℃伅銆

getColumnCase() 鏂规硶
public mixed getColumnCase()
{return} mixed 鍒楃殑澶у皬鍐欐儏鍐
婧愮爜锛 framework/db/CDbConnection.php#600 (鏄剧ず)
public function getColumnCase()
{
    return 
$this->getAttribute(PDO::ATTR_CASE);
}

杩斿洖鍒楀悕绉扮殑澶у皬鍐欐儏鍐

getCommandBuilder() 鏂规硶
public CDbCommandBuilder getCommandBuilder()
{return} CDbCommandBuilder 杩斿洖姝ゅ懡浠ょ敓鎴愬櫒
婧愮爜锛 framework/db/CDbConnection.php#521 (鏄剧ず)
public function getCommandBuilder()
{
    return 
$this->getSchema()->getCommandBuilder();
}

杩斿洖涓哄綋鍓岲B杩炴帴鐨凷QL鍛戒护鐢熸垚鍣ㄣ

getConnectionStatus() 鏂规硶
public string getConnectionStatus()
{return} string 杩斿洖杩炴帴鐨勭姸鎬
婧愮爜锛 framework/db/CDbConnection.php#700 (鏄剧ず)
public function getConnectionStatus()
{
    return 
$this->getAttribute(PDO::ATTR_CONNECTION_STATUS);
}

杩斿洖杩炴帴鐨勭姸鎬併 涓浜 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

getCurrentTransaction() 鏂规硶
public CDbTransaction getCurrentTransaction()
{return} CDbTransaction 杩斿洖褰撳墠娲诲姩鐨勪簨鍔°傚鏋滄病鏈夋椿鍔ㄤ簨鍔¤繑鍥瀗ull銆
婧愮爜锛 framework/db/CDbConnection.php#476 (鏄剧ず)
public function getCurrentTransaction()
{
    if(
$this->_transaction!==null)
    {
        if(
$this->_transaction->getActive())
            return 
$this->_transaction;
    }
    return 
null;
}

杩斿洖褰撳墠娲诲姩鐨勪簨鍔°

getDriverName() 鏂规硶
public string getDriverName()
{return} string 杩斿洖鐨凞B椹卞姩绋嬪簭鐨勫悕绉
婧愮爜锛 framework/db/CDbConnection.php#679 (鏄剧ず)
public function getDriverName()
{
    if((
$pos=strpos($this->connectionString':'))!==false)
        return 
strtolower(substr($this->connectionString0$pos));
    
// return $this->getAttribute(PDO::ATTR_DRIVER_NAME);
}

杩斿洖鐨勬暟鎹簱椹卞姩绋嬪簭鐨勫悕绉般

getLastInsertID() 鏂规硶
public string getLastInsertID(string $sequenceName='')
$sequenceName string 搴忓垪瀵硅薄鐨勫悕绉 (鏌愪簺DBMS瑕佹眰)
{return} string 鏈鍚庢彃鍏ョ殑琛岀殑 ID锛屾垨浠庡簭鍒楀璞′腑鍙栧洖鐨勬渶鍚庣殑鍊笺
婧愮爜锛 framework/db/CDbConnection.php#532 (鏄剧ず)
public function getLastInsertID($sequenceName='')
{
    
$this->setActive(true);
    return 
$this->_pdo->lastInsertId($sequenceName);
}

杩斿洖鏈鍚庝竴涓彃鍏ョ殑琛岀殑ID鎴栧簭鍒楀笺

getNullConversion() 鏂规硶
public mixed getNullConversion()
{return} mixed 杩斿洖鍊艰鏄巒ull鍜岀┖瀛楃涓叉槸鎬庢牱杞崲鐨勩
婧愮爜锛 framework/db/CDbConnection.php#620 (鏄剧ず)
public function getNullConversion()
{
    return 
$this->getAttribute(PDO::ATTR_ORACLE_NULLS);
}

杩斿洖null涓巈mpty瀛楃涓插浣曡浆鍖栫殑鎯呭喌銆

getPdoInstance() 鏂规硶
public PDO getPdoInstance()
{return} PDO 杩斿洖PDO瀹炰緥锛屽鏋滆繛鎺ヨ繕娌℃湁寤虹珛杩斿洖null
婧愮爜锛 framework/db/CDbConnection.php#453 (鏄剧ず)
public function getPdoInstance()
{
    return 
$this->_pdo;
}

杩斿洖PDO瀹炰緥銆

getPdoType() 鏂规硶
public integer getPdoType(string $type)
$type string PHP绫诲瀷锛堥氳繃璋冪敤gettype()鑾峰緱锛夈
{return} integer 杩斿洖鐩稿簲鐨凱DO绫诲瀷
婧愮爜锛 framework/db/CDbConnection.php#583 (鏄剧ず)
public function getPdoType($type)
{
    static 
$map=array
    (
        
'boolean'=>PDO::PARAM_BOOL,
        
'integer'=>PDO::PARAM_INT,
        
'string'=>PDO::PARAM_STR,
        
'NULL'=>PDO::PARAM_NULL,
    );
    return isset(
$map[$type]) ? $map[$type] : PDO::PARAM_STR;
}

鎸囧畾鐨凱HP鏁版嵁绫诲瀷鍐冲畾PDO鏁版嵁绫诲瀷銆

getPersistent() 鏂规硶
public boolean getPersistent()
{return} boolean 杩斿洖杩炴帴鏄惁鏄寔涔呰繛鎺
婧愮爜锛 framework/db/CDbConnection.php#660 (鏄剧ず)
public function getPersistent()
{
    return 
$this->getAttribute(PDO::ATTR_PERSISTENT);
}

杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚︽寔涔呯殑銆 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

getPrefetch() 鏂规硶
public boolean getPrefetch()
{return} boolean 杩斿洖鏄惁杩炴帴鎵ц鏁版嵁棰勮鍙
婧愮爜锛 framework/db/CDbConnection.php#709 (鏄剧ず)
public function getPrefetch()
{
    return 
$this->getAttribute(PDO::ATTR_PREFETCH);
}

杩斿洖鏁版嵁搴撹繛鎺ユ槸鍚﹀彲鎵ц鏁版嵁棰勮幏鍙栥

getSchema() 鏂规硶
public CDbSchema getSchema()
{return} CDbSchema 褰撳墠杩炴帴鐨勬暟鎹簱缁撴瀯
婧愮爜锛 framework/db/CDbConnection.php#502 (鏄剧ず)
public function getSchema()
{
    if(
$this->_schema!==null)
        return 
$this->_schema;
    else
    {
        
$driver=$this->getDriverName();
        if(isset(
$this->driverMap[$driver]))
            return 
$this->_schema=Yii::createComponent($this->driverMap[$driver], $this);
        else
            throw new 
CDbException(Yii::t('yii','CDbConnection does not support reading schema for {driver} database.',
                array(
'{driver}'=>$driver)));
    }
}

杩斿洖褰撳墠杩炴帴鐨勬暟鎹簱缁撴瀯

getServerInfo() 鏂规硶
public string getServerInfo()
{return} string 杩斿洖DBMS鏈嶅姟鍣ㄧ殑淇℃伅銆
婧愮爜锛 framework/db/CDbConnection.php#718 (鏄剧ず)
public function getServerInfo()
{
    return 
$this->getAttribute(PDO::ATTR_SERVER_INFO);
}

杩斿洖DBMS鏈嶅姟鍣ㄧ殑淇℃伅銆

getServerVersion() 鏂规硶
public string getServerVersion()
{return} string 杩斿洖DBMS鏈嶅姟鍣ㄧ殑鐗堟湰淇℃伅銆
婧愮爜锛 framework/db/CDbConnection.php#727 (鏄剧ず)
public function getServerVersion()
{
    return 
$this->getAttribute(PDO::ATTR_SERVER_VERSION);
}

杩斿洖DBMS鏈嶅姟鍣ㄧ殑鐗堟湰淇℃伅銆

getStats() 鏂规硶
public array getStats()
{return} array 杩斿洖鐨勬暟缁勪腑绗竴涓厓绱犳寚绀篠QL璇彞鎵ц鐨勬暟鐩紝 绗簩涓厓绱犳寚绀篠QL鎵ц鐨勬绘椂闂淬
婧愮爜锛 framework/db/CDbConnection.php#798 (鏄剧ず)
public function getStats()
{
    
$logger=Yii::getLogger();
    
$timings=$logger->getProfilingResults(null,'system.db.CDbCommand.query');
    
$count=count($timings);
    
$time=array_sum($timings);
    
$timings=$logger->getProfilingResults(null,'system.db.CDbCommand.execute');
    
$count+=count($timings);
    
$time+=array_sum($timings);
    return array(
$count,$time);
}

杩斿洖SQL鎵ц鐨勭粺璁$粨鏋溿 杩斿洖鐨勭粨鏋滃寘鍚墽琛孲QL璇彞鐨勬暟鐩拰 鎵鑺辫垂鐨勬绘椂闂淬 涓轰簡浣跨敤姝ゆ柟娉曪紝enableProfiling蹇呴』璁剧疆涓 true銆

getTimeout() 鏂规硶
public integer getTimeout()
{return} integer 杩斿洖杩炴帴鐨勮秴鏃惰缃
婧愮爜锛 framework/db/CDbConnection.php#736 (鏄剧ず)
public function getTimeout()
{
    return 
$this->getAttribute(PDO::ATTR_TIMEOUT);
}

杩斿洖杩炴帴鐨勮秴鏃惰缃

init() 鏂规硶
public void init()
婧愮爜锛 framework/db/CDbConnection.php#305 (鏄剧ず)
public function init()
{
    
parent::init();
    if(
$this->autoConnect)
        
$this->setActive(true);
}

鍒濆鍖栫粍浠躲 璇ユ柟娉曞IApplicationComponent 鏉ヨ鏄繀椤荤殑锛 骞朵笖褰 CDbConnection 琚敤浣滀竴涓簲鐢ㄧ▼搴忕粍浠舵椂瑙﹀彂銆 濡傛灉浣犻噸鍐欐鏂规硶锛岃纭繚璋冪敤鐖剁被瀹炵幇 浠ヤ究鍙互灏嗙粍浠舵爣璁颁负宸插垵濮嬪寲銆

initConnection() 鏂规硶
protected void initConnection(PDO $pdo)
$pdo PDO PDO瀹炰緥
婧愮爜锛 framework/db/CDbConnection.php#431 (鏄剧ず)
protected function initConnection($pdo)
{
    
$pdo->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
    if(
$this->emulatePrepare!==null && constant('PDO::ATTR_EMULATE_PREPARES'))
        
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,$this->emulatePrepare);
    if(
$this->charset!==null)
    {
        
$driver=strtolower($pdo->getAttribute(PDO::ATTR_DRIVER_NAME));
        if(
in_array($driver,array('pgsql','mysql','mysqli')))
            
$pdo->exec('SET NAMES '.$pdo->quote($this->charset));
    }
    if(
$this->initSQLs!==null)
    {
        foreach(
$this->initSQLs as $sql)
            
$pdo->exec($sql);
    }
}

鍒濆鍖栧紑鏀炬暟鎹簱杩炴帴銆 鍦ㄦ暟鎹簱杩炴帴寤虹珛鍚庯紝璋冪敤姝ゆ柟娉曞銆 榛樿鐨勫疄鐜版槸璁剧疆MySQL鍜孭ostgreSQL鏁版嵁搴撹繛鎺ョ殑charset銆

open() 鏂规硶
protected void open()
婧愮爜锛 framework/db/CDbConnection.php#365 (鏄剧ず)
protected function open()
{
    if(
$this->_pdo===null)
    {
        if(empty(
$this->connectionString))
            throw new 
CDbException(Yii::t('yii','CDbConnection.connectionString cannot be empty.'));
        try
        {
            
Yii::trace('Opening DB connection','system.db.CDbConnection');
            
$this->_pdo=$this->createPdoInstance();
            
$this->initConnection($this->_pdo);
            
$this->_active=true;
        }
        catch(
PDOException $e)
        {
            if(
YII_DEBUG)
            {
                throw new 
CDbException(Yii::t('yii','CDbConnection failed to open the DB connection: {error}',
                    array(
'{error}'=>$e->getMessage())),(int)$e->getCode(),$e->errorInfo);
            }
            else
            {
                
Yii::log($e->getMessage(),CLogger::LEVEL_ERROR,'exception.CDbException');
                throw new 
CDbException(Yii::t('yii','CDbConnection failed to open the DB connection.'),(int)$e->getCode(),$e->errorInfo);
            }
        }
    }
}

鎵撳紑鏁版嵁搴撹繛鎺ワ紝濡傛灉瀹冨綋鍓嶆病鏈夋墦寮

quoteColumnName() 鏂规硶
public string quoteColumnName(string $name)
$name string 鍒楀悕
{return} string 姝g‘寮曠敤鐨勫垪鍚嶇О
婧愮爜锛 framework/db/CDbConnection.php#573 (鏄剧ず)
public function quoteColumnName($name)
{
    return 
$this->getSchema()->quoteColumnName($name);
}

鍦ㄤ竴涓煡璇腑寮曠敤涓涓垪鍚嶇О銆 濡傛灉璇ュ垪鍚嶅寘鍚墠缂锛屽墠缂涔熻鎭板綋鐨勫紩鐢ㄣ

quoteTableName() 鏂规硶
public string quoteTableName(string $name)
$name string 琛ㄥ悕
{return} string 姝g‘寮曠敤鐨勮〃鍚
婧愮爜锛 framework/db/CDbConnection.php#562 (鏄剧ず)
public function quoteTableName($name)
{
    return 
$this->getSchema()->quoteTableName($name);
}

鍦ㄤ竴涓煡璇腑寮曠敤鐨勮〃鍚嶃 濡傛灉姝よ〃鍚嶅寘鍚玸chema 鍓嶇紑锛屽墠缂涔熻兘琚伆褰撶殑寮曠敤銆

quoteValue() 鏂规硶
public string quoteValue(string $str)
$str string 琚紩鐢ㄧ殑瀛楃涓
{return} string 姝g‘寮曠敤鐨勫瓧绗︿覆
婧愮爜锛 framework/db/CDbConnection.php#544 (鏄剧ず)
public function quoteValue($str)
{
    if(
is_int($str) || is_float($str))
        return 
$str;

    
$this->setActive(true);
    if((
$value=$this->_pdo->quote($str))!==false)
        return 
$value;
    else  
// the driver doesn't support quote (e.g. oci)
        
return "'" addcslashes(str_replace("'""''"$str), "\000\n\r\\\032") . "'";
}

鍦ㄤ竴涓煡璇腑寮曠敤涓涓瓧绗︿覆鍊笺

setActive() 鏂规硶
public void setActive(boolean $value)
$value boolean 璇存槑鏁版嵁搴撹繛鎺ユ槸寮鍚繕鏄叧闂
婧愮爜锛 framework/db/CDbConnection.php#326 (鏄剧ず)
public function setActive($value)
{
    if(
$value!=$this->_active)
    {
        if(
$value)
            
$this->open();
        else
            
$this->close();
    }
}

鎵撳紑鎴栧叧闂璂B杩炴帴銆

setAttribute() 鏂规硶
public void setAttribute(integer $name, mixed $value)
$name integer 瑕佽缃殑灞炴
$value mixed 灞炴у
婧愮爜锛 framework/db/CDbConnection.php#759 (鏄剧ず)
public function setAttribute($name,$value)
{
    if(
$this->_pdo instanceof PDO)
        
$this->_pdo->setAttribute($name,$value);
    else
        
$this->_attributes[$name]=$value;
}

璁剧疆鏁版嵁搴撹繛鎺ヤ笂鐨勪竴涓睘鎬с

setAttributes() 鏂规硶 锛堝彲鐢ㄨ嚜 v1.1.7锛
public void setAttributes(array $values)
$values array 瑕佽璁剧疆鐨勫睘鎬(name=>value)銆
婧愮爜锛 framework/db/CDbConnection.php#784 (鏄剧ず)
public function setAttributes($values)
{
    foreach(
$values as $name=>$value)
        
$this->_attributes[$name]=$value;
}

璁剧疆涓濂楁暟鎹簱杩炴帴鐨勫睘鎬с

鍙傝

setAutoCommit() 鏂规硶
public void setAutoCommit(boolean $value)
$value boolean 杩斿洖鏄惁鍒涘缓鎴栨洿鏂癉B璁板綍灏嗚嚜鍔ㄦ彁浜ゃ
婧愮爜锛 framework/db/CDbConnection.php#650 (鏄剧ず)
public function setAutoCommit($value)
{
    
$this->setAttribute(PDO::ATTR_AUTOCOMMIT,$value);
}

璁剧疆鏄惁鍒涘缓鎴栨洿鏂版暟鎹簱璁板綍灏嗚嚜鍔ㄦ彁浜ゃ 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

setColumnCase() 鏂规硶
public void setColumnCase(mixed $value)
$value mixed 鍒楀悕绉扮殑澶у皬鍐
婧愮爜锛 framework/db/CDbConnection.php#610 (鏄剧ず)
public function setColumnCase($value)
{
    
$this->setAttribute(PDO::ATTR_CASE,$value);
}

璁剧疆鍒楀悕绉扮殑澶у皬鍐欍

setNullConversion() 鏂规硶
public void setNullConversion(mixed $value)
$value mixed null鍜宔mpty 瀛楃涓插浣曡浆鎹€
婧愮爜锛 framework/db/CDbConnection.php#630 (鏄剧ず)
public function setNullConversion($value)
{
    
$this->setAttribute(PDO::ATTR_ORACLE_NULLS,$value);
}

璁剧疆null鍜宔mpty 瀛楃涓插浣曡浆鎹€

setPersistent() 鏂规硶
public void setPersistent(boolean $value)
$value boolean 姝よ繛鎺ユ槸鍚︽槸鎸佷箙杩炴帴
婧愮爜锛 framework/db/CDbConnection.php#670 (鏄剧ず)
public function setPersistent($value)
{
    return 
$this->setAttribute(PDO::ATTR_PERSISTENT,$value);
}

璁剧疆姝よ繛鎺ユ槸鍚︽槸鎸佷箙杩炴帴銆 鏌愪簺 DBMS (濡 sqlite) 鍙兘涓嶆敮鎸佽繖涓壒寰併

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