【发布时间】:2014-07-18 00:49:15
【问题描述】:
所以我有一个通知系统,并想检查用户是否阅读了他们的通知。所以我添加了read 行。如果值为0,则为未读,反之则为被读。所以在我的foreach 循环中,显示通知这就是我将其标记为已读的方式
//Mark as read
$mkrd = $con->prepare("UPDATE notifications SET read = 1 WHERE id = :hid;");
$mkrd->bindValue(':hid', $notification['id']);
$mkrd->execute();
我相信循环会循环,当用户查看它时,它会更新为1。现在这是问题,由于某种原因它不会更新。没有 PHP 错误或 MYSQL 错误。我确定我做的一切都是对的,有什么想法吗?还有更好的方法吗?
这是循环
foreach($notifications as $notification) {
$notification;
$readntf = 1;
//Mark as read
$mkrd = $con->prepare("UPDATE notifications SET read = 1 WHERE id = :hid;");
$mkrd->bindValue(':hid', $notification['id']);
$mkrd->execute();
echo $notification['type'];
}
【问题讨论】:
-
您需要提供更多信息才能获得有用的答案。你是如何进入这段代码的?你怎么知道这些行肯定被执行了?
-
这看起来不错,但我们必须在你的循环上下文中看到它才能看到它是如何执行的。
-
我使用
var_dump获取查询,语句后我也回显,似乎一直在进行@esqew -
只是为了过去,如果您从查询中删除
;会发生什么。 -
不幸的是,同样的问题。
read不更新 @Darren