PHP 准备语句 Foreach 循环

标签 php mysql prepared-statement

下面的代码只返回一个结果。其余五个结果为空白。如何返回所有行?

foreach($dates as $date){

    if($stmt->prepare("SELECT event FROM calendar WHERE date = ?")) {

        $stmt->bind_param('i',$date);

        $stmt->execute();

        $stmt->bind_result($event);

        $stmt->store_result();

        while($stmt->fetch()) {
            echo $event;
        }
        $stmt->close();
    }
}

最佳答案

您在 foreach 循环的第一次执行中关闭了准备好的语句。

将您的 $stmt->prepare("SELECT event FROM calendar WHERE date = ?") 移到 foreach 循环之外

$stmt->close() 在 foreach 循环之外

关于PHP 准备语句 Foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245371/

相关文章:

JavaScript getElementById 空值错误以及如何避免它

php - 是否可以在 mysql 中更新然后插入?

java - 还有其他更好的方法来获取和比较数据库凭证与java吗?

php - YII模型——隐藏某些记录

mysql - 删除具有递归外键约束的记录

php - 为什么我从 PHP PDO 直接查询获取数据而不是使用准备好的语句时出错?

Java/SQL : Is it mandatory to close() a ResultSet/Statement/Connection?

php - 类外定义的方法?

php - 设置();不返回 false 并将空白字段插入数据库

php - pdo - 准备好的语句丢失数据?