0

PDO プリペアド ステートメントを使用してテーブルからデータを取得するのに苦労しています。

以下は機能しない私のコードです。 $post は常に空です。

    //connection to db has been made
    $stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
    $stmt->bindValue(1,$_GET['id']);
    $post = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->execute();

問題は 3 行目にあると確信しているので、fetchAll(PDO::FETCH_ASSOC) 以外でデータを取得する方法があれば教えてください。

どうもありがとう。

4

1 に答える 1

2

実際にメソッドを実行しているわけではありませんが、それ以外の場合、コードは問題ないように見えます!

// Assuming $_GET['id'] has a value (thanks Mike!)
$stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
$stmt->bindValue(1, $_GET['id']);
$stmt->execute();

$post = $stmt->fetchAll(PDO::FETCH_ASSOC);

余談ですが、それ$_GET['id']が有効であることも確認します。is_int($_GET['id'])役立つ可能性のあるブール値を返します。


投稿を取得したら、必ずそれらを繰り返し処理してください。

if($post != null && count($post) > 0) {
    for($i = 0; $i < count($post); $i++) {
        echo $post[$i]['title'] . '<br />';
    }
}
于 2013-09-05T23:19:57.110 に答える