-1

你能帮我弄清楚为什么我的代码会检索双重数据吗?我已经在 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,另一个索引为 DB 字段的名称

{ "0" : "1",
  "1" : "Hotel one",
  "2" : "3 stars",
  "3" : "5",
  "ID" : "1",
  "Category" : "3 stars",
  "Object" : "Hotel one",
  "Rating" : "5"
}
4

2 回答 2

1

这是因为 PDO 获取模式,使用:$result->fetch(PDO::FETCH_ASSOC)仅获取 db 字段。

文档: http: //php.net/manual/en/pdostatement.fetch.php

于 2013-10-05T15:20:16.820 回答
0

fetch()方法返回一个数组,其中包含与其名称相关联的列数据,并且也与其索引顺序相关联。

用于$result->fetch(PDO::FETCH_ASSOC)仅获取具有列名的数据,或$result->fetch(PDO::FETCH_NUM)获取具有索引号的数据。

于 2013-10-05T15:22:41.230 回答