从PDO查询初始化变量

时间:2013-09-06 06:23:44

标签: php pdo

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

如何获取我要查询的元素的具体值?说列username下的元素和userident等于'1'的元素包含值“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"

肯定有一种我错过的方法吗?

1 个答案:

答案 0 :(得分:0)

使用查询方法几乎违背了使用预准备语句的目的。另外,我相信你正在寻找的东西,这是不对的。

<?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()收集多个结果。

编辑:我实际上并没有运行此代码,因此您可能需要修改它以使其正常工作。