php - FOREACH 和 UPDATE mysql 不能一起工作

标签 php mysql sql

我似乎无法让这段代码工作。您可以使用 foreach 行运行另一个查询吗?这是一个将发送电子邮件的 cron 脚本,我需要在 cron 运行时将状态从“0”更新为“1”,以便我知道电子邮件已发送 - 下面的代码 UPDATE 查询不起作用。

// Connect to the database
$conn = new PDO("mysql:host=$DB_HOST;dbname=$DB_DATABASE",$DB_USER,$DB_PASSWORD);

// Get the emails to send and ensure the status shows they have not been sent already
$stmt = $conn->prepare("SELECT id, userid, title, message FROM reminders WHERE time=CURDATE() AND status='0'");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($results AS $row){
echo $row['title'] . ' ' . $row['message'] . ' ' . $row['id'] . '<br />';
$update = $conn->prepare("UPDATE results SET status='1' WHERE id=:id");
$update->bindParam(':id', $row['id']);
$update->execute();
};

编辑:表名错误。已解决

最佳答案

如何指定值的数据类型(我想 [不确定] 默认数据类型是字符串并且服务器会自动解析它)? PDO::PARAM_INT

$update->bindValue(':id', $row['id'], PDO::PARAM_INT);

PDO Predefine Constants

关于php - FOREACH 和 UPDATE mysql 不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312762/

相关文章:

SQL 将重复记录合并到一行

mysql - 在新列中引入计算值

php - 使用 Zend Json Server,ajax 调用在 css 弹出窗口中列出某些信息

mysql - Rails - Controller 中连接表的语句 IF

PHP Codeigniter 错误无法打开流 : Permission denied

mysql - SQL Between 子句太慢

mysql - 我的 sql 查询最近 7 天的数据?如果数据不存在,那么甚至获取日期并显示为 0 或 null

mysql - SQL 连接 2 个表,其 ID 位于一行

php - Heroku : Push rejected, 无法编译 PHP 应用程序

php - 循环有什么问题 - 超过 30 秒的最大执行时间?