CDbDataReader
鍖 | system.db |
---|---|
缁ф壙 | class CDbDataReader » CComponent |
瀹炵幇 | Iterator, Traversable, Countable |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CDbDataReader.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
婧愮爜 | framework/db/CDbDataReader.php |
瑕侀槄璇诲綋鍓嶈鏁扮粍锛岃皟鐢read銆 鏂规硶readAll杩斿洖鍦ㄥ崟涓暟缁勪腑鐨勬墍鏈夎銆
鍙互浣跨敤foreach璇诲彇CDbDataReader涓殑琛屾暟缁勶細
foreach($reader as $row) // $row 琛ㄧず涓涓暟鎹鍥犱负 CDbDataReader 鐨勬祦鍙兘鍚戝墠锛屾墍浠ヤ綘鍙互鍙亶鍘嗕竴娆°
涔熷彲浠ヤ娇鐢ㄧ壒瀹氱殑鏁版嵁妯″紡璇诲彇鏁版嵁锛 閫氳繃璁剧疆FetchMode銆 鍙傝http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php 涓烘洿澶氱粏鑺傘
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
columnCount | integer | 杩斿洖缁撴灉闆嗙殑鍒楁暟銆 | CDbDataReader |
isClosed | boolean | 鏄惁姝よ鍙栧櫒鍏抽棴銆 | CDbDataReader |
rowCount | integer | 杩斿洖缁撴灉闆嗙殑琛屾暟銆 | CDbDataReader |
鍏叡鏂规硶
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
__call() | 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 | CComponent |
__construct() | 鏋勯犲嚱鏁般 | CDbDataReader |
__get() | 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 | CComponent |
__isset() | 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 | CComponent |
__set() | 璁剧疆涓涓粍浠剁殑灞炴у笺 | CComponent |
__unset() | 璁剧疆涓涓粍浠剁殑灞炴т负null銆 | CComponent |
asa() | 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° | CComponent |
attachBehavior() | 闄勫姞涓涓涓哄埌缁勪欢銆 | CComponent |
attachBehaviors() | 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 | CComponent |
attachEventHandler() | 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 | CComponent |
bindColumn() | 缁戝畾涓鍒楀埌涓涓狿HP鍙橀噺銆 | CDbDataReader |
canGetProperty() | 纭畾灞炴ф槸鍚﹀彲璇汇 | CComponent |
canSetProperty() | 纭畾灞炴ф槸鍚﹀彲鍐欍 | CComponent |
close() | 鍏抽棴姝よ鍙栧櫒銆 | CDbDataReader |
count() | 杩斿洖缁撴灉闆嗙殑琛屾暟銆 | CDbDataReader |
current() | 杩斿洖褰撳墠琛屻 | CDbDataReader |
detachBehavior() | 浠庣粍浠朵腑鍒嗙涓涓涓恒 | CComponent |
detachBehaviors() | 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 | CComponent |
detachEventHandler() | 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 | CComponent |
disableBehavior() | 绂佺敤涓涓檮鍔犺涓恒 | CComponent |
disableBehaviors() | 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
enableBehavior() | 鍚敤涓涓檮鍔犺涓恒 | CComponent |
enableBehaviors() | 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
evaluateExpression() | 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 | CComponent |
getColumnCount() | 杩斿洖缁撴灉闆嗙殑鍒楁暟銆 | CDbDataReader |
getEventHandlers() | 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 | CComponent |
getIsClosed() | 鏄惁姝よ鍙栧櫒鍏抽棴銆 | CDbDataReader |
getRowCount() | 杩斿洖缁撴灉闆嗙殑琛屾暟銆 | CDbDataReader |
hasEvent() | 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 | CComponent |
hasEventHandler() | 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 | CComponent |
hasProperty() | 纭畾灞炴ф槸鍚﹁瀹氫箟銆 | CComponent |
key() | 杩斿洖褰撳墠琛岀殑绱㈠紩銆 | CDbDataReader |
next() | 绉诲姩鍐呴儴鎸囬拡鍒颁笅涓琛. | CDbDataReader |
nextResult() | 褰撹鍙栨壒澶勭悊璇彞鐨勭粨鏋滄椂锛岃鍙栧櫒鍓嶈繘鍒颁笅涓涓粨鏋溿 | CDbDataReader |
raiseEvent() | 鍙戣捣涓涓簨浠躲 | CComponent |
read() | 璇诲彇鍣ㄥ墠杩涘埌缁撴灉闆嗙殑涓嬩竴琛屻 | CDbDataReader |
readAll() | 璇诲彇鏁翠釜缁撴灉闆嗗埌鏁扮粍銆 | CDbDataReader |
readColumn() | 杩斿洖鏉ヨ嚜涓涓粨鏋滈泦鐨勪笅涓琛岀殑涓涓崟鍒椼 | CDbDataReader |
readObject() | 杩斿洖涓涓~鍏呮湁涓嬩竴琛屾暟缁勭殑瀵硅薄銆 | CDbDataReader |
rewind() | 閲嶇疆姝よ凯浠e櫒涓哄垵濮嬬姸鎬併 | CDbDataReader |
setFetchMode() | 姝よ鍙ヨ缃粯璁よ鍙栨ā寮忋 | CDbDataReader |
valid() | 杩斿洖鍦ㄥ綋鍓嶄綅缃槸鍚︽湁涓琛屾暟鎹 | CDbDataReader |
灞炴ц缁
杩斿洖缁撴灉闆嗙殑鍒楁暟銆 娉ㄦ剰锛屽嵆浣垮湪璇诲彇鍣ㄤ腑娌℃湁琛岋紝杩欎粛灏嗙粰鍑烘纭殑鍒楁暟銆
鏄惁姝よ鍙栧櫒鍏抽棴銆
杩斿洖缁撴灉闆嗙殑琛屾暟銆 娉ㄦ剰锛屽ぇ澶氭暟DBMS鍙兘鏃犳硶缁欏嚭鏈夋剰涔夌殑璁℃暟銆 鍦ㄨ繖绉嶆儏鍐典笅锛屼娇鐢 "SELECT COUNT(*) FROM tableName" 鍘诲彇寰楄鏁般
鏂规硶璇︾粏
public void __construct(CDbCommand $command)
| ||
$command | CDbCommand | 姝ゅ懡浠ょ敓鎴愭煡璇㈢粨鏋 |
public function __construct(CDbCommand $command)
{
$this->_statement=$command->getPdoStatement();
$this->_statement->setFetchMode(PDO::FETCH_ASSOC);
}
鏋勯犲嚱鏁般
public void bindColumn(mixed $column, mixed &$value, integer $dataType=NULL)
| ||
$column | mixed | 鍒楃殑鏁扮洰 (1-indexed) 鎴栧垪鐨勫悕绉板湪缁撴灉闆嗕腑銆 濡傛灉浣跨敤鍒楀悕, 娉ㄦ剰鍒楀悕瑕佸拰姝ゅ垪鐨勫ぇ灏忓啓鍖归厤锛 鍜岄┍鍔ㄧ▼搴忚繑鍥炵殑涓鏍枫 |
$value | mixed | 缁戝畾鍒板垪鐨凱HP鍙橀噺鍚嶃 |
$dataType | integer | 鍙傛暟鐨勬暟鎹被鍨 |
public function bindColumn($column, &$value, $dataType=null)
{
if($dataType===null)
$this->_statement->bindColumn($column,$value);
else
$this->_statement->bindColumn($column,$value,$dataType);
}
缁戝畾涓鍒楀埌涓涓狿HP鍙橀噺銆 褰撴暟鎹琚幏鍙栨椂锛岀浉搴旂殑鍒楀煎皢鐢ㄦ鍙橀噺璁剧疆銆 娉ㄦ剰锛岃鍙栨ā寮忓繀椤诲寘鍚 PDO::FETCH_BOUND銆
public void close()
|
public function close()
{
$this->_statement->closeCursor();
$this->_closed=true;
}
鍏抽棴姝よ鍙栧櫒銆 杩欏皢閲婃斁鍒嗛厤缁欐墽琛屾SQL璇彞鐨勮祫婧愩 姝ゆ柟娉曡皟鐢ㄥ悗灏濊瘯璇诲彇鏄笉鍙娴嬬殑銆
public integer count()
| ||
{return} | integer | 杩斿洖缁撴灉涓寘鍚殑琛屾暟銆 |
public function count()
{
return $this->getRowCount();
}
杩斿洖缁撴灉闆嗙殑琛屾暟銆 杩欎釜鏂规硶瀵瑰彲鏁扮殑鎺ュ彛鑰岃█鏄繀椤荤殑銆 娉ㄦ剰锛屽ぇ澶氭暟DBMS鍙兘鏃犳硶缁欏嚭鏈夋剰涔夌殑璁℃暟銆 鍦ㄨ繖绉嶆儏鍐典笅锛屼娇鐢 "SELECT COUNT(*) FROM tableName" 鍘诲彇寰楄鏁般
public mixed current()
| ||
{return} | mixed | 杩斿洖褰撳墠琛屻 |
杩斿洖褰撳墠琛屻 杩欎釜鏂规硶瀵规帴鍙h凯浠e櫒鑰岃█鏄繀椤荤殑銆
public integer getColumnCount()
| ||
{return} | integer | 杩斿洖缁撴灉闆嗙殑鍒楁暟銆 |
public function getColumnCount()
{
return $this->_statement->columnCount();
}
杩斿洖缁撴灉闆嗙殑鍒楁暟銆 娉ㄦ剰锛屽嵆浣垮湪璇诲彇鍣ㄤ腑娌℃湁琛岋紝杩欎粛灏嗙粰鍑烘纭殑鍒楁暟銆
public boolean getIsClosed()
| ||
{return} | boolean | 杩斿洖鏄惁姝よ鍙栧櫒鍏抽棴銆 |
public function getIsClosed()
{
return $this->_closed;
}
鏄惁姝よ鍙栧櫒鍏抽棴銆
public integer getRowCount()
| ||
{return} | integer | 杩斿洖缁撴灉涓殑琛屾暟銆 |
public function getRowCount()
{
return $this->_statement->rowCount();
}
杩斿洖缁撴灉闆嗙殑琛屾暟銆 娉ㄦ剰锛屽ぇ澶氭暟DBMS鍙兘鏃犳硶缁欏嚭鏈夋剰涔夌殑璁℃暟銆 鍦ㄨ繖绉嶆儏鍐典笅锛屼娇鐢 "SELECT COUNT(*) FROM tableName" 鍘诲彇寰楄鏁般
public integer key()
| ||
{return} | integer | 杩斿洖褰撳墠琛岀殑绱㈠紩銆 |
杩斿洖褰撳墠琛岀殑绱㈠紩銆 杩欎釜鏂规硶瀵规帴鍙h凯浠e櫒鑰岃█鏄繀椤荤殑銆
public void next()
|
public function next()
{
$this->_row=$this->_statement->fetch();
$this->_index++;
}
绉诲姩鍐呴儴鎸囬拡鍒颁笅涓琛. 杩欎釜鏂规硶瀵规帴鍙h凯浠e櫒鑰岃█鏄繀椤荤殑銆
public boolean nextResult()
| ||
{return} | boolean | 褰撴垚鍔熸椂杩斿洖true锛屽け璐ユ椂杩斿洖false銆 |
public function nextResult()
{
if(($result=$this->_statement->nextRowset())!==false)
$this->_index=-1;
return $result;
}
褰撹鍙栨壒澶勭悊璇彞鐨勭粨鏋滄椂锛岃鍙栧櫒鍓嶈繘鍒颁笅涓涓粨鏋溿 姝ゆ柟娉曚粎鍦ㄥ綋鏈夊涓粨鏋滈泦鏃舵湁鐢ㄣ 鏌ヨ杩斿洖涓嶆槸鎵鏈夌殑 DBMS 閮芥敮鎸佽繖涓姛鑳姐
public array|false read()
| ||
{return} | array|false | 杩斿洖褰撳墠琛岋紝濡傛灉娌℃湁鏇村鐨勫彲鐢ㄨ杩斿洖false銆 |
public function read()
{
return $this->_statement->fetch();
}
璇诲彇鍣ㄥ墠杩涘埌缁撴灉闆嗙殑涓嬩竴琛屻
public array readAll()
| ||
{return} | array | 杩斿洖鏁扮粍缁撴灉闆 (姣忎竴涓暟缁勫厓绱犺〃绀轰竴琛屾暟鎹)銆 濡傛灉缁撴灉涓嶅寘鍚锛岃繑鍥炰竴涓┖鏁扮粍銆 |
public function readAll()
{
return $this->_statement->fetchAll();
}
璇诲彇鏁翠釜缁撴灉闆嗗埌鏁扮粍銆
public mixed|false readColumn(integer $columnIndex)
| ||
$columnIndex | integer | 浠0寮濮嬬殑鍒楃储寮 |
{return} | mixed|false | 褰撳墠琛岀殑鍒楋紝濡傛灉娌℃湁鏇村鍙敤琛岃繑鍥瀎alse銆 |
public function readColumn($columnIndex)
{
return $this->_statement->fetchColumn($columnIndex);
}
杩斿洖鏉ヨ嚜涓涓粨鏋滈泦鐨勪笅涓琛岀殑涓涓崟鍒椼
public mixed|false readObject(string $className, array $fields)
| ||
$className | string | 瑕佸垱寤哄苟濉厖鐨勫璞$殑绫诲悕銆 |
$fields | array | 姝ゆ暟缁勪腑鐨勫厓绱犺浼犻掑埌鏋勯犲嚱鏁 |
{return} | mixed|false | 杩斿洖琚~鍏呭璞★紝濡傛灉娌℃湁鏇村鐨勫彲鐢ㄦ暟鎹鏃惰繑鍥瀎alse銆 |
public function readObject($className,$fields)
{
return $this->_statement->fetchObject($className,$fields);
}
杩斿洖涓涓~鍏呮湁涓嬩竴琛屾暟缁勭殑瀵硅薄銆
public void rewind()
|
public function rewind()
{
if($this->_index<0)
{
$this->_row=$this->_statement->fetch();
$this->_index=0;
}
else
throw new CDbException(Yii::t('yii','CDbDataReader cannot rewind. It is a forward-only reader.'));
}
閲嶇疆姝よ凯浠e櫒涓哄垵濮嬬姸鎬併 杩欎釜鏂规硶瀵规帴鍙h凯浠e櫒鑰岃█鏄繀椤荤殑銆
public void setFetchMode(mixed $mode)
| ||
$mode | mixed | 璇诲彇妯″紡 |
public function setFetchMode($mode)
{
$params=func_get_args();
call_user_func_array(array($this->_statement,'setFetchMode'),$params);
}
姝よ鍙ヨ缃粯璁よ鍙栨ā寮忋
public boolean valid()
| ||
{return} | boolean | 杩斿洖鍦ㄥ綋鍓嶄綅缃槸鍚︽湁涓琛屾暟鎹 |
杩斿洖鍦ㄥ綋鍓嶄綅缃槸鍚︽湁涓琛屾暟鎹 杩欎釜鏂规硶瀵规帴鍙h凯浠e櫒鑰岃█鏄繀椤荤殑銆