每次有人在我的论坛发帖回复时,我都会遇到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)
我不知道为什么没有更新 - 有人能看到任何问题吗?我没有收到错误或其他任何内容..
答案 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());
}
您还可以检查数据库的内部日志,以检查内部是否有任何错误。