$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"
肯定有一种我错过的方法吗?
答案 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()
收集多个结果。
编辑:我实际上并没有运行此代码,因此您可能需要修改它以使其正常工作。