PHP 未将 SQL 结果写入 JSON 文件 [duplicate]

PHP not writing SQL result to JSON file [duplicate]

提问人:nebulator0 提问时间:11/12/2021 最后编辑:nebulator0 更新时间:11/12/2021 访问量:45

问:

我试图实现的是简单地将mysqli结果的所有行放入JSON文件中。

我的代码如下所示:

$sth = mysqli_query($mysqli, "SELECT * FROM table");
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = $r;
}
print_r($rows);
$mysqli->close();
$fileobj = fopen("takeOutItems.json", 'w');
fwrite($fileobj,json_encode($rows));
fclose($fileobj);

打印$rows数组可正确显示数据。 但是,fwrite 不会更改takeOutItems.json中的任何内容。

我做错了什么?

PHP 数组 json mysqli

评论

1赞 Jerson 11/12/2021
print_r是否在浏览器中打印该数据?
2赞 Jerson 11/12/2021
你试过file_put_contents('takeOutItems.json',json_encode($rows)))吗?
1赞 Jerson 11/12/2021
如果它不起作用,则需要检查目录权限。
1赞 Jerson 11/12/2021
您可以尝试使用 echo 打印json_encode吗?,将查看数组是否成功解析为 json。
3赞 Jerson 11/12/2021
您可能会看到这一点,我认为可能的问题是编码 stackoverflow.com/questions/19361282/......

答:

2赞 nebulator0 11/12/2021 #1

问题是某些数据元素未正确显示。添加 $mysqli->set_charset(“utf8”); 解决了该问题。

评论

1赞 Jerson 11/12/2021
干得好,虽然您可以使用 UTF8Encode 函数在 UTF8 上转换它
1赞 Dharman 11/12/2021
请停止使用已弃用的字符集。用utf8utf8mb4