这是一个无知的初学者类型的问题,所以我道歉。但是我没有设法找到一个网站或视频来帮助我理解使用MySQL编写的语句,所以我希望得到一些直接的建议。
在我学习的最后几周,我一直在使用程序化MySQLi调用来进行数据库查询,并使用while循环进行处理。像
这样的事情$query = mysqli_query("SELECT * FROM `Shoes` WHERE `Color` = 'Red'");
while ($row = mysqli_fetch_assoc($query)) {
echo $row['size'];
}
这样的事情。我有意义的是,我将执行一个查询,返回一个特殊的结果资源,然后使用'fetch_something'函数将其转换为一个我可以从中选择并循环的数组,无论其大小如何。
现在我正在努力学习准备好的陈述。什么让我感到震惊的是'bind_result'功能似乎一直被使用,至少在我迄今为止咨询的每本书和教程中都是如此。它告诉我每列提供一个变量,该列的结果将被绑定到该变量。像
$db = new mysqli(server,user,pass,database);
$stmt = $db->prepare("select `Temperature` from `BuildingDetails` where `HouseNumber` = ?");
$stmt->bind_param("i",$_GET['num']);
$stmt->execute();
$stmt->bind_result($x);
$stmt->fetch();
echo "The temperature in this house is {$x}.";
当我检索单个值或单行时足够简单。但是如果我想循环一个包含20列和5,000行的表呢?有没有办法可以返回常规的旧MySQL结果资源并使用fetch_assoc或其他东西?
答案 0 :(得分:0)
有没有办法可以返回常规的旧MySQL结果资源并使用fetch_assoc或其他内容?
<强>程序强>
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result))
{
print_r($row);
}
<强> OOP 强>
$result = $stmt->get_result();
while ($row = $result->fetch_assoc())
{
print_r($row);
}
这样您就不必绑定所有变量来获得结果。