【发布时间】:2014-02-15 05:54:50
【问题描述】:
我在后端使用 Flight 框架来构建 RESTful 服务和 PDO 来从 MySql 检索数据。
require 'flight/Flight.php';
Flight::route('GET /satellites', function () {
$sql = "SELECT * FROM satellites";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$response = json_encode($stmt->fetchAll());
$db = null;
echo "{sucess: true, records:" . "$response" . "}";
} catch (PDOException $e) {
echo '{"error":{"text":' . $e->getMessage() . '}}';
}
});
Flight::start();
我得到这个 JSON 作为响应:
{
sucess: true,
records:[
{
"id":"1",
"dates":"01.01.2007 - 01.01.2011",
"satellite":null,
null:"98.2",
"resolution":"15",
"band":"30",
"price":"$15"
}
]
}
以上是正确的,但卫星不应该为空,它肯定有一个值(我通过PHPMyAdmin检查过)。还有一个名为 null 的列,其值为 98.2,应称为最低点。为什么叫null?
顺便说一句,卫星和最低点列的数据类型是 varchar(255)。然后我将卫星列数据类型更改为文本,但都一样。
【问题讨论】:
-
你的排序规则是什么?
-
你检查过是不是
json_encode()的问题?$stmt->fetchAll()返回什么? -
为什么db的字段名是null
-
顺便说一句,数据库中的文本是从 odt 文档中复制粘贴的。如果重要的话。
-
null怎么可以是字段名(属性)???