无法通过错误从数据库获取数据:usfured(在承诺)语法:disastersource.showdisaster的JSON输入的意外结束

发布于 2025-02-11 08:02:33 字数 1355 浏览 1 评论 0原文

我是托管项目的新手,所以我已经连接到数据库,但是出现了问题。

Uncaught (in promise) SyntaxError: Unexpected end of JSON input
    at DisasterSource.showDisaster

这是我的代码:

class DisasterSource {
  static async showDisaster() {
    const response = await fetch('./src/scripts/data/filtered-data.php');
    const responseJson = await response.json();
    return responseJson.data;
  }
}

export default DisasterSource;

另外,我携带我的.php文件:

<?php
require '../../../koneksi.php';

$sql = "SELECT * FROM v_disasterlogs_all";

  $response = mysqli_query($koneksi, $sql);

  if ( mysqli_num_rows($response) > 0) {
    $result = array();

    $days= date('Y-m-d h:i:s', strtotime('-5 days'));

      while( $row = mysqli_fetch_assoc($response))
      {
        if ( $row['eventdate'] > $days) {
          $result[] = $row;
        }
      }
      $status = "1";
      $message = "success";
      echo json_encode(array('status'=>$status, 'message'=>$message, 'data' => $result), JSON_PRETTY_PRINT);
      mysqli_close($conn);
  } else {
    $status = "0";
    $message = "error";
    
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(array('status'=>$status, 'message'=>$message), JSON_PRETTY_PRINT);
  }

?>

除此数据外,一切都很好,它不会从数据库中获取。有解决方案吗?

I'm new to hosting my project, so I've connected to database, but problem showed up.

Uncaught (in promise) SyntaxError: Unexpected end of JSON input
    at DisasterSource.showDisaster

Here's my code:

class DisasterSource {
  static async showDisaster() {
    const response = await fetch('./src/scripts/data/filtered-data.php');
    const responseJson = await response.json();
    return responseJson.data;
  }
}

export default DisasterSource;

In additional, I bring my.php file:

<?php
require '../../../koneksi.php';

$sql = "SELECT * FROM v_disasterlogs_all";

  $response = mysqli_query($koneksi, $sql);

  if ( mysqli_num_rows($response) > 0) {
    $result = array();

    $days= date('Y-m-d h:i:s', strtotime('-5 days'));

      while( $row = mysqli_fetch_assoc($response))
      {
        if ( $row['eventdate'] > $days) {
          $result[] = $row;
        }
      }
      $status = "1";
      $message = "success";
      echo json_encode(array('status'=>$status, 'message'=>$message, 'data' => $result), JSON_PRETTY_PRINT);
      mysqli_close($conn);
  } else {
    $status = "0";
    $message = "error";
    
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(array('status'=>$status, 'message'=>$message), JSON_PRETTY_PRINT);
  }

?>

Everything works fine except this data, it wont be fetched from database. Any solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁吢 2025-02-18 08:02:33

固定,它是由非ASCII CHAR引起的。

通过添加此修复:

json_encode($array, JSON_UNESCAPED_UNICODE)

$string = preg_replace('/[\x00-\x1F\x7F]/u', '', $string);

Fixed, it was caused by non-ascii char.

Fix by adding this:

json_encode($array, JSON_UNESCAPED_UNICODE)

or

$string = preg_replace('/[\x00-\x1F\x7F]/u', '', $string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文