我遇到了执行SQL查询的问题,然后需要针对结果运行foreach两次循环。
第一个循环运行,并且回声完全正常,但是,当再次运行循环时,它不会返回任何结果。
$sql = "SELECT * FROM customers";
$stmt = $conn->prepare($sql);
$stmt->execute();
foreach($stmt as $row) {
echo $row['Name'] . "<br>";
}
foreach($stmt as $row) {
echo $row['Name'] . "<br>";
}
当然,我把这个例子写成了我实际使用它的简化。
下面运行这样的事情确实有效,但我想知道是否有一种更优雅的方式来解决我的问题。
$sql = "SELECT * FROM customers";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt2 = array();
foreach($stmt as $row) {
echo $row['Name'] . "<br>";
array_push($stmt2, $row);
}
foreach($stmt2 as $row) {
echo $row['Name'] . "<br>";
}