我的系统中有一个最喜欢的按钮。每条消息都有一个收藏夹按钮,以及消息发送给用户的时间。现在,当用户收藏一个按钮时,消息的时间被插入到表中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();
}
我发现是我进行的更新查询导致了问题,但是为什么当我只指定切换列时它会更新日期列?
守候你守候我