将 sql 结果转换为 json php

converting sql results to json php

我正在尝试将结果从 postgresql 数据库转换为 json。这是我在网上找到的一个例子,但它给了我意想不到的结果。

<?php

$pdo = new PDO("pgsql:host=MYIP;dbname=MYDB;user=MYUSER;password=MYPASS");

$stmt=$pdo->prepare("SELECT * FROM message_log");
$json=json_encode($stmt);

echo $json;
?>

当我运行脚本时,结果是这样

{"queryString":"SELECT * FROM message_log"}

知道我在这里做错了什么以及如何将 pgsql 结果成功转换为 json 吗?

$stmt 不是结果。这是一份 PDO 声明。您需要获取结果。

$stmt->setFetchMode(PDO::FETCH_OBJ);
$stmt->execute();
$json = json_encode($stmt->fetchAll());
echo $json;