你能帮我弄清楚为什么我的代码会检索双数据吗?我把一个数据库放在WAMP上和PHP文件一起查询
<?php
$dbName = $_SERVER["DOCUMENT_ROOT"] . "//proba//database.accdb";
if (!file_exists($dbName)) {
die("Could not find database file." . $dbName);
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$dbName; Uid=; Pwd=;");
$sql = "SELECT * FROM Hotel";
$result = $db->query($sql);
$row = $result->fetch();
echo json_encode($row);
一切都被读得很好,但是我获得了双重数据,一个是索引0,1,2,3,另一个是索引作为数据库字段的名称
{ "0" : "1",
"1" : "Hotel one",
"2" : "3 stars",
"3" : "5",
"ID" : "1",
"Category" : "3 stars",
"Object" : "Hotel one",
"Rating" : "5"
}
答案 0 :(得分:1)
由于PDO获取模式,使用:$result->fetch(PDO::FETCH_ASSOC)
仅获取数据库字段。
答案 1 :(得分:0)
fetch()
方法返回一个数组,该数组包含与其名称关联的列数据,并且还与其索引顺序相关联。
使用$result->fetch(PDO::FETCH_ASSOC)
仅获取包含列名称的数据,或使用$result->fetch(PDO::FETCH_NUM)
获取包含索引号的数据。