gpt4 book ai didi

PHP PDO fetchAll 然后 json_encode 不起作用

转载 作者:可可西里 更新时间:2023-11-01 00:08:50 27 4
gpt4 key购买 nike

我有一个奇怪的问题。我有一个简单的 PHP 脚本,它使用 PDO 从数据库中获取所有国家,然后将结果作为 json 返回。当我使用 fetch 函数而不是 fetchAll 时,一切都按预期工作。当我 print_r 时,数据就在那里。

不起作用:

 $sql = "SELECT * FROM countries";
if($stmt = $_db->prepare($sql))
{
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor();

header("content-type:application/json");

echo json_encode($data);
exit();

}

作品:

 $sql = "SELECT * FROM countries";
if($stmt = $_db->prepare($sql))
{
$stmt->execute();
$data = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor();

header("content-type:application/json");

echo json_encode($data);
exit();

}

print_r 的结果:

Array
(
[0] => Array
(
[id] => 1
[name] => Afghanistan
)

[1] => Array
(
[id] => 2
[name] => Åland Islands
)

[2] => Array
(
[id] => 3
[name] => Albania
)
....
[248] => Array
(
[id] => 249
[name] => Zimbabwe
)

)
1

最佳答案

尝试

$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

与:

array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")

关于PHP PDO fetchAll 然后 json_encode 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268423/

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