0
$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"

当然,我在某处错过了一种方法吗?

4

1 回答 1

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

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

于 2013-09-06T06:38:12.350 回答