我的系統中有一個最喜歡的按鈕。每條消息都有一個收藏夾按鈕,以及消息發送給用戶的時間?,F在,當用戶收藏一個按鈕時,消息的時間被插入到表中favorite_messages。我的問題是,出于某種原因,日期列更新為當前日期,不應更新,它應該與發送消息時的日期保持一致。這是我的PHP代碼:$user_id = $_SESSION['active_user_id'];extract($_GET);$id=$_GET['message'];$toggle = "yes";$q=$db->prepare("SELECT msgid,date,text FROM messages WHERE to_id=? and msgid=?");$q->bindValue(1,$user_id);$q->bindValue(2,$id);$q->execute();$row2=$q->fetch();$d=$row2['date'];$fav_questionq=$db->prepare("SELECT * FROM messages LEFT JOIN users ON messages.to_id=users.id WHERE users.id=? AND messages.msgid=?");$fav_questionq->bindValue(1,$user_id);$fav_questionq->bindValue(2,$id);$fav_questionq->execute();$frow=$fav_questionq->fetch();$fquestion= $frow['text'];$result = $db->prepare("SELECT * FROM fav_messages WHERE username=? AND message=?");$result->bindValue(1,$user_id); $result->bindValue(2,$id); $result->execute();if($result->rowCount()== 1 ){ $updateMessageQuery = $db->prepare("UPDATE messages SET toggle='no' WHERE msgid=?"); $updateMessageQuery->bindValue(1,$id); $updateMessageQuery->execute(); $deletequery=$db->prepare("DELETE FROM fav_messages WHERE message=?"); $deletequery->bindValue(1,$id); $deletequery->execute();} else { $updateMessageQuery = $db->prepare("UPDATE messages SET toggle='yes' WHERE msgid=?"); $updateMessageQuery->bindValue(1,$id); $updateMessageQuery->execute(); $insertquery = $db->prepare("INSERT INTO fav_messages (username,message,fav_question,fav_date) values(?,?,?,?)"); $insertquery->bindValue(1,$user_id); $insertquery->bindValue(2,$id); $insertquery->bindValue(3,$fquestion); $insertquery->bindValue(4,$d); $insertquery->execute();}我發現是我進行的更新查詢導致了問題,但是為什么當我只指定切換列時它會更新日期列?
1 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
問題出在數據庫中,日期類型為時間戳并設置為默認 current_timestamp,因此每次更新時都會更新為當前時間。我將它設置為 NULL 并解決了問題
- 1 回答
- 0 關注
- 114 瀏覽
添加回答
舉報
0/150
提交
取消