php - PDO没有更新时间()

时间:2014-03-14 09:41:50

标签: php mysql pdo

每次有人在我的论坛发帖回复时,我都会遇到PDO查询问题:

$time= time();  


$s = $dbh->prepare("UPDATE forum_topics SET last_post_user=:user, last_post_userid=:userid, last_post_time=:time, posts=posts+1 WHERE topic_id=:topicid");
                $s->bindParam(':user', $userdata['username']);
                $s->bindParam(':userid', $userid);
                $s->bindParam(':time', $time);
                $s->bindParam(':userid', $userid);
                $s->bindParam(':topicid', $topicid);
                            try {
                    $s->execute();
                }
                catch(PDOException $e) {
                    die($e->getMessage());
                }

以上查询确实更新了我的数据库..所有字段,期望:time正在更新。

数据库中last_post_time的结构为int(20)

我不知道为什么没有更新 - 有人能看到任何问题吗?我没有收到错误或其他任何内容..

1 个答案:

答案 0 :(得分:0)

几个问题: 你有任何例外吗?或者只是DB中的last_post_time为空(默认)? $time= time()是否将时间戳分配给$time

您也可以尝试将:time替换为:post_time

$s = $dbh->prepare("UPDATE forum_topics SET last_post_user=:user, last_post_userid=:userid, last_post_time=:post_time, posts=posts+1 WHERE topic_id=:topicid");
                $s->bindParam(':user', $userdata['username']);
                $s->bindParam(':userid', $userid);
                $s->bindParam(':post_time', $time);
                $s->bindParam(':userid', $userid);
                $s->bindParam(':topicid', $topicid);
                            try {
                    $s->execute();
                }
                catch(PDOException $e) {
                    die($e->getMessage());
                }

您还可以检查数据库的内部日志,以检查内部是否有任何错误。