gpt4 book ai didi

php - json_encode正在截断从mysql数据库读取的对象数据

转载 作者:行者123 更新时间:2023-11-29 12:05:58 27 4
gpt4 key购买 nike

我正在 PHP 5.6.8 中开发一个 Web 应用程序,使用 MySql 作为数据库引擎。

在我验证用户是否具有适当凭据的方法中,我正在调用数据库并检索用户对象。功能代码为:

function getBoosterDetails($patientId){
$dbConnection = new Database();

$sql = "SELECT * from users where id = :patientId";
try {
$db = $dbConnection->getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("patientId", $patientId);
$stmt->execute();
$userDetails = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
$_SESSION['userDetails'] = $userDetails;

echo '{"user": ' . json_encode($userDetails) . '}';


} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
} catch(Exception $e1) {
echo '{"error11":{"text11":'. $e1->getMessage() .'}}';
} }

对于任何有效的输入,我都收到对象无效的错误。我尝试在 Advanced Rest Client Chrome 插件中检查 userDetails 对象。我观察到,虽然对象的 var 转储具有整个对象数据,但 json_encode 的回显已被截断,如下图所示。

![在此处输入图像描述][1]

我已经使用 XAMPP 设置了 Apache 和 MySql 服务器(并且之前也尝试过使用 MAMP 并得到了相同的结果。)

// this is the var_dump
stdClass object
(
[username] => pavan
[rolename] => Patient
[userid] => 5
)

//this is the json_encode echo output
{"user": [{"username":"pavan", "rolename":"Patient", "userid":

内容在采用 json 编码时会被截断您能帮我解决这个问题吗?

最佳答案

不要将 json-in-json 包装起来。这是错误的。

用您的宿主语言(例如 php)构建一个单一数据结构,然后对整个结构进行编码:

$data = array(
'user' => $userDetails
);
$json = json_encode($data);

您的代码正在生成语法非法的 json...

   echo '{"user":' . json_encode($userDetails) . '}}';**
^--open #1 ^--close #1
^--close #2

这个#2 大括号闭合是什么?如果您进行单结构编码,这是不可能的。

关于php - json_encode正在截断从mysql数据库读取的对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31478531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com