从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
)
)
如您所见,输出具有数字和名称索引。
答案 0 :(得分: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);
答案 1 :(得分:2)
调用SetFetchMode()告诉ADO您想要获得哪种数组。