5

从 MySQL 检索数据时,PHP 数组输出具有数字和名称索引。我怎样才能防止这种情况?

我使用:

$stmt = $this->dbObj->Prepare($sql);
$rs = $this->dbObj->Execute($stmt);
if (!$rs) {
    trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
}

$this->videos_voted = null;
while ($row = $rs->FetchRow()) {
    $this->videos_voted[$row['video_id']] = $row;
}

输出:

Array
(
    [16] => Array
        (
            [0] => 16
            [video_id] => 16
            [1] => 1028
            [total_views] => 1028
            [2] => No
            [featured] => No
        )

)

如您所见,输出具有数字索引和名称索引。

4

2 回答 2

7

来自: http: //phplens.com/lens/adodb/docs-adodb.htm#adodb_fetch_mode

$ADODB_FETCH_MODE

这是一个全局变量,用于确定记录集如何检索数组。记录集在创建时保存此值(例如,在 Execute( ) 或 SelectLimit( ) 中),并且对 $ADODB_FETCH_MODE 的任何后续更改都不会影响现有记录集,只会影响将来创建的记录集。

定义了以下常量:

define('ADODB_FETCH_DEFAULT',0);
define('ADODB_FETCH_NUM',1);
define('ADODB_FETCH_ASSOC',2);
define('ADODB_FETCH_BOTH',3); 

$db->SetFetchMode(ADODB_FETCH_ASSOC);
于 2011-11-29T19:53:37.620 回答
2

调用SetFetchMode()告诉 ADO 你想得到什么样的数组。

于 2011-11-29T19:53:55.687 回答