2

私はPHPが初めてで、非常に単純なAPIを作成しようとしています(私が思うには良い方法だと思います)。なぜこれがうまくいかないのですか? このページをロードすると、出力は{"queryString":"SELECT id, Name FROM Food WHERE userID=1 ORDER BY Name"}であり、必要な 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;

出力: ベーコンチーズチップス

4

1 に答える 1

10

$dbh->queryは、行ではなくPDOStatementオブジェクトを返します。json に行を追加するには、オブジェクトでfetchAllを呼び出します。

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

フェッチ モードを指定することもできます。

fetchAll(PDO::FETCH_ASSOC);
于 2013-01-16T14:25:56.213 に答える