【问题标题】:Get Data from Mysql using (PHP) and send it to typescript/javascript using JSON使用 (PHP) 从 Mysql 获取数据并使用 JSON 将其发送到 typescript/javascript
【发布时间】:2018-01-14 01:58:41
【问题描述】:

我在 php 中从 mysql 获取数据,我想使用 JSON 将其发送到 typescript。但是当加载 php 页面时。屏幕上什么也没显示。它总是显示一个空白页。

$select  ="SELECT * from `filiere`";
$run = mysqli_query($connect, $select);
$temp = array();

while($row=mysqli_fetch_row($run)) {
    $temp[] = $row;
}
echo json_encode($temp);

从代码中,它应该以 json 格式显示数据。

这是什么问题?

【问题讨论】:

  • 你试过 print_json() 了吗?
  • 我试过 print_json($temp);但它给了我调用未定义函数 print_json()
  • 空白页 表示某些东西已(或可能)损坏。在 PHP 脚本的最顶部添加这些行 ini_set('display_errors', 1); error_reporting(E_ALL); 并查看它是否产生任何错误。
  • 您的查询有效吗?
  • json_encode 的内容必须是 UTF-8 编码。使用 var_dump 或 print_r 进行测试。

标签: javascript php mysql json typescript


【解决方案1】:

在 PHP 中,一个意外的空白页通常意味着某种错误 + 错误报告已关闭。

尝试开启错误报告

ini_set('display_startup_errors',1); 
ini_set('display_errors',1);
error_reporting(E_ALL);

编辑#1: 根据 cmets,似乎 json_encode() 失败,因此返回 false(回显 false 将导致空白页)。

应该使用json_last_error() 和/或json_last_error_msg() 函数来查找错误。

编辑#2: json_encode() 的第一个参数必须只包含 UTF-8 编码的字符串。

【讨论】:

  • 试试var_dump(json_encode($temp));如果这也没有打印出任何东西,你的php脚本没有正确执行。
  • 它打印“布尔假”,所以呢?
  • 这意味着json_encode() 失败。使用json_last_error()json_last_error_msg() 查看错误是什么。
  • 它打印“格式错误的 UTF-8 字符,可能编码不正确”
  • 尝试使用mysqli_set_charset("utf8")(在mysqli_connect之后)设置与mysqli通信的编码。
【解决方案2】:

我想我已经明白我的错误在哪里了。 你没事。我有一些带有法文字母的数据,例如('é','ù'..)。我认为这是问题所在。

谢谢大家

【讨论】:

    【解决方案3】:

    您是否在 php 上设置了端点内容类型?

    header('Content-Type: application/json');
    

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 1970-01-01
      • 2011-06-16
      • 2015-10-10
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      相关资源
      最近更新 更多