【发布时间】:2017-02-17 16:13:49
【问题描述】:
我正在使用 slim 框架来创建一个 api,其中包含从我的数据库中获取所有帐户的路由。我尝试在 json 中返回帐户列表,但它删除了最后两个字符,这使其成为无效的 Json,因为它应该以 }] 结尾。我不知道它为什么这样做以及如何解决它。
<?php
header("Content-Type: application/json;charset=utf-8");
class Account {
public function getAll(){
$db_connection = new Connection();
$conn = $db_connection->getConnection();
$result = $conn->query("SELECT * from accounts");
$numrows = $result->rowCount();
if ($numrows > 0) {
$rowset = $result->fetchAll(PDO::FETCH_ASSOC);
}
else {
$message['Error'] = 'No Account found';
$rowset = $message;
}
return $rowset;
}
}
我在我的路由中调用 getAll 方法,比如
$app->get('/Account/GetAll', function($request, $response, $args) use ($app){
$application = new Account();
return $response->withJSON($application->getAll());
});
【问题讨论】:
-
$numrows = $result->rowCount(); $rowset = array(); if ($numrows > 0) { $rowset[] = $result->fetchAll(PDO::FETCH_ASSOC); } else { $message['Error'] = 'No Account found'; $rowset = $message; } return $rowset;检查一次 -
@Anant 我试过了,但还是不行。
-
看起来问题是基于字符限制的。当我从帐户限制 13 中选择 * 时,它会返回一个包含 9225 个字符的有效 json。一一列出所有列,限制为 14,我得到 9587 个字符。我减去 2 列增加限制 15 我得到 9502 个字符。减去 5 列,我得到 9401 个字符,限制为 17。我得到 9506 个字符,限制为 19 减去 7 列。如果我将 1 添加到限制中,它们中的每一个都会抛出错误错误字符串。如果您有任何解决方案,请告诉我。