0
$q = $db->query(" SELECT username FROM users WHERE userident = '1' ");
echo $q; //error
print_r $q; //prints the query information (SELECT ... etc)

クエリしている要素の特定の値を取得するにはどうすればよいですか? 列の下の要素で、 「1」usernameuserident等しい値には「Patrick」という値が含まれているとします。この文字列を変数に初期化するにはどうすればよいですか?

//same query as above
$user = $q;
echo $user; //prints "Patrick"

これが非常に初歩的でありふれたものである場合は申し訳ありませんが、foreach()ループの外でこれを行ったことはありません。通常、行を繰り返し処理して特定の詳細を出力します。以下は機能しますが、foreach()理解する限り不要です。

foreach($q as $p) {
    $user = $p["username"];
}
echo $print; //this correctly prints "Patrick"

きっと私がどこかに見逃した方法がありますか?

4

1 に答える 1

0

query メソッドを使用すると、準備済みステートメントを使用する目的がほとんど損なわれます。さらに、あなたが探しているものは、まったく正しくないと思います。

<?php
    if (!isset($_POST['id'])) {
        exit;
    }
    $userId = $_POST['id'];

    $db = new PDO(/* Stuff */);

    $sql = '
        SELECT username
        FROM users
        WHERE id = :id';

    // Get a prepared statement object.
    $statement = $db->prepare($sql);

    // Bind a parameter to the SQL code.
    $statement->bindParam(':id', $userId, PDO::PARAM_INT);

    // Actually get the result.
    $result = $statement->fetch(PDO::FETCH_ASSOC);

    // Close the connection.
    $statement->closeCursor();

    // Print the result.
    print_r($result);

$statement->fetchAll()または、 を使用して複数の結果を収集することもできます。

編集: このコードを実際に実行したわけではないので、正しく動作させるためにいじる必要があるかもしれません。

于 2013-09-06T06:38:12.350 に答える