【问题标题】:calling PDO with AJAX, returns an empty string使用 AJAX 调用 PDO,返回一个空字符串
【发布时间】:2026-02-21 23:15:02
【问题描述】:

我有一个使用 PDO 用 PHP 编写的简单数据库查询。当我var_dump 我的$results 时,我得到一个关联数组。所以我想我会使用return $ result,使用 AJAX 调用脚本,然后从那里开始工作。但是现在当我console.log 得到的数据时,我只得到一个空字符串。

谁能解释我做错了什么以及如何解决它?谢谢

这是我的 php(为了“安全”,我已经清空了主机、用户名和密码):

<?php
try {
    $hostname = "";
    $username = "";
    $password = "";

    $db = new PDO("mysql:host=$hostname;dbname=topdecka_PTC",$username, $password);

    $raw_result = $db->query('SELECT * FROM articles');
    $result = $raw_result->fetchAll(PDO::FETCH_ASSOC);

    return $result;
} catch (PDOException $e) {
    echo "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

还有我的 AJAX 函数:

$(document).ready(function() {
    $.get( "db_queries/all_articles.php", function( data ) {
    console.log( data );
});
});

【问题讨论】:

  • 使用 echo json_encode($result) 代替 return
  • 你确定连接成功了吗
  • @Uchiha 是的,将其更改为 echo json_encode 后,它按预期工作,只是等待足够的时间过去,以便我可以接受 anwser

标签: php mysql ajax pdo


【解决方案1】:

你需要回显 JSON 编码的数据:

改变这一行:

return $result;

收件人:

echo json_encode($result);

【讨论】: