繁体   English   中英

PDO对JSON的响应

[英]PDO response to json

我是PHP的新手,正尝试制作一个非常简单的api(我也想学习的一种好方法),为什么这样做不起作用? 加载此页面时,输出为: {“ queryString”:“ SELECT id,名称来自食品WHERE userID = 1 ORDER BY名称”}}而不是我想要的JSON字符串

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

$response = $dbh->query("SELECT id, Name FROM Food WHERE userID=1 ORDER BY Name");

$responseJSON = json_encode($response);

header('Content-type: application/json');
echo "$responseJSON";

$dbh = null;

查询没有问题,因为尝试此操作时我得到了想要的东西:

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

$response = $dbh->query("SELECT id, Name FROM Food WHERE userID=1 ORDER BY Name");

    foreach ($response as $row)
        {
            print $row['Name'] . ' ';
        }


$dbh = null;

输出: 培根芝士片

$ dbh-> query调整PDOStatement对象,而不是行。 要将行添加到json,请在对象上调用fetchAll

$response = $dbh->query("SELECT id, Name FROM Food WHERE userID=1 ORDER BY Name")->fetchAll();

您也可以指定获取模式,例如

fetchAll(PDO::FETCH_ASSOC);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM