我正在使用PHP,我需要一种方法将整个记录集转换为JSON字符串。
在搜索Stack Overflow时,我发现这个解决方案有效:
function recordSetToJson($mysql_result) {
$rs = array();
while($rs[] = mysql_fetch_assoc($mysql_result)) {
// you don´t really need to do anything here.
}
return json_encode($rs);
}
此代码的问题在于我发现函数mysql_fetch_assoc()
在PHP 5.5.0中已弃用。另一件事是我使用PDO连接到我的数据库。
鉴于上述情况,将PDO记录集转换为JSON的最佳解决方案是什么?我希望它也适用于PHP的更高版本。
答案 0 :(得分:15)
解决方案很简单。
考虑到变量$stmt
是您的PDO记录集,您可以将其转换为JSON,如下所示:
json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
有关此段代码中使用的函数的更多信息:
答案 1 :(得分:-1)
你应该使用类似的东西
之前的某个地方
$stmt = $pdo->prepare("SELECT * FROM fruit WHERE name = ?");
$stmt->execute(array("Apple"));
....
function recordSetToJson($stmt) {
$json_result = array();
while($tmp = $stmt->fetch() ) {
$json_result[] = $tmp;
}
return json_encode($json_result);
}
但最终解决方案将完全取决于太多因素。