我正在使用 mysqli 从数据库获取数据并希望显示收到的数据。
我想这样做的原因是因为我将使用主页中的数据(显然), 但是我正在另一个 php 文件中运行 sql 查询。
文件夹结构供参考:
/
├─ api/
│ ├─ popular-items.php
├─ home/
│ ├─ index.php
如果我按照预期的方式执行此操作,将
popular-items.php
包含在 index.php
中,我将面临必须释放内存并关闭 index.php
文件内的连接的烦恼。这就是为什么我选择对结果进行 json 编码,然后回显它并在内部使用它
index.php
,popular-items.php
。
但是由于某种未知的原因
json_encode()
在前面添加了字符串“connected”。 (见下图)
我尝试使用 preg_replace 手动删除该字符串,但由于某种神奇的原因它仍然存在。
$result = $conn->query($query);
// fetch the data into a regular PHP array
$data = $result->fetch_all(MYSQLI_ASSOC);
// manually construct JSON output
$json_output = json_encode($data);
// remove the unwanted "connected" prefix if present -- DOESN'T WORK
$json_output = preg_replace('/^connected/', '', $json_output);
echo $json_output;
我在网上没有找到其他人遇到这个问题。
连 ChatGPT 都已经没有解决方案了,现在只是胡说八道。
不,事实并非如此。它与
json_encode()
没有任何关系。您应该在源中搜索 connected
字符串(我建议区分大小写,搜索字面上的 "connected"
以及带有单引号的字符串),这显然是首先回响的。通过字符串本身,我首先检查 $conn
对象的 c'tor。