我有一個(gè)我無法解決的最奇怪的問題。我有一個(gè)簡(jiǎn)單的 MySQL 查詢,它兩次返回結(jié)果中的每個(gè)字段。第一個(gè)鍵名為字段名,第二個(gè)是整數(shù)。該表如下所示:id int(11)user_id int(11)first_name varchar(255)last_name varchar(255)country_code varchar(3)mobile varchar(255)email varchar(255)profile_img var_char(255)timestamp timestamp我的代碼如下所示:$db = new PDO('mysql:host=localhost;dbname=proj', 'dev', '<password>');$sql = "SELECT * FROM contact";$stmt = $db->prepare($sql);$stmt->execute();$contacts = $stmt->fetchAll();print_r($contacts));輸出是:Array( [id] => 1 [0] => 1 [user_id] => 1 [1] => 1 [first_name] => joan [2] => joan [last_name] => smith [3] => smith [country_code] => AU [4] => AU [mobile] => 0400 222 333 [5] => 0400 222 333 [email] => joan@example.com [6] => joan@example.com [profile_img] => [7] => [timestamp] => 0000-00-00 00:00:00 [8] => 0000-00-00 00:00:00 )我在 Debian 9.1 VM 中使用 MariaDB 15.1 和 PHP 7.0。
1 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
這是因?yàn)槟銢]有設(shè)置fetch_style
的參數(shù)$stmt->fetchAll();
。默認(rèn)情況下,PDO 將結(jié)果作為具有編號(hào)和關(guān)聯(lián)鍵(例如,“first_name”和 2)的數(shù)組獲取。
從文檔:
fetch_style
控制返回?cái)?shù)組的內(nèi)容,如 中所述
PDOStatement::fetch()
。默認(rèn)為值PDO::ATTR_DEFAULT_FETCH_MODE
(默認(rèn)為PDO::FETCH_BOTH
)
要僅獲取關(guān)聯(lián)索引,請(qǐng)傳遞參數(shù)PDO::FETCH_ASSOC
,如
$contacts = $stmt->fetchAll(PDO::FETCH_ASSOC);
要僅獲取編號(hào)索引,請(qǐng)傳遞參數(shù)PDO::FETCH_NUM
,如
$contacts = $stmt->fetchAll(PDO::FETCH_NUM);
的文檔中PDOStatement::fetch
列出了完整的選項(xiàng)集。
- 1 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報(bào)
0/150
提交
取消