我的系統(tǒng)中有一個(gè)最喜歡的按鈕。每條消息都有一個(gè)收藏夾按鈕,以及消息發(fā)送給用戶的時(shí)間?,F(xiàn)在,當(dāng)用戶收藏一個(gè)按鈕時(shí),消息的時(shí)間被插入到表中favorite_messages。我的問題是,出于某種原因,日期列更新為當(dāng)前日期,不應(yīng)更新,它應(yīng)該與發(fā)送消息時(shí)的日期保持一致。這是我的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();}我發(fā)現(xiàn)是我進(jìn)行的更新查詢導(dǎo)致了問題,但是為什么當(dāng)我只指定切換列時(shí)它會(huì)更新日期列?
1 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
問題出在數(shù)據(jù)庫中,日期類型為時(shí)間戳并設(shè)置為默認(rèn) current_timestamp,因此每次更新時(shí)都會(huì)更新為當(dāng)前時(shí)間。我將它設(shè)置為 NULL 并解決了問題
- 1 回答
- 0 關(guān)注
- 110 瀏覽
添加回答
舉報(bào)
0/150
提交
取消