提问人: 提问时间:12/21/2019 更新时间:12/21/2019 访问量:61
如何更新会话空值
How to update session empty value
问:
我正在PHP MYSQLI中创建消息对话删除脚本。我正在尝试更新会话空值。我的问题我可以更新列。但是我无法更新传入的消息列。我想更新或列空会话值。from_delete
to_delete
from_delete
to_delete
这是我的 pm 表
id from_id to_id msg sent_date from_delete to_delete
1 2 3 hi how are you? 2019-12-05 04:14:20 0 3
2 3 2 fine 2019-12-05 05:15:58 0 2
3 2 3 hi 2019-12-05 03:20:34 0 3
4 5 2 hi 2019-12-05 08:30:40 0 2
这是我的源代码
<?php
require_once "config.php";
if (isset($_GET['deleteid'])) {
$id = $_GET['id'];
$session_id = $_SESSION['userid'];
}
$stmt = $con->prepare("UPDATE pm SET from_delete = ? or to_delete =? WHERE id=? ");
$stmt->bind_param("sss", $session_id, $session_id, $id);
if ($stmt->execute()) {
echo"deleted successfully";
} else {
echo "Failed to delete<br/>";
}
答:
0赞
Triby
12/21/2019
#1
我认为最好先阅读并检查消息是否属于当前用户作为发送者或接收者,然后为他删除。但是您可以尝试同时设置正确的过滤器。
<?php
require_once "config.php";
if (isset($_GET['deleteid'])) {
$id = $_GET['id'];
$session_id = $_SESSION['userid'];
}
// Mark from_delete only if user is the sender
$stmt = $con->prepare("UPDATE pm SET from_delete = ? WHERE id = ? AND from_id = ?");
$stmt->bind_param("sss", $session_id, $id, $session_id);
if ($stmt->execute()) {
echo"deleted successfully";
} else {
echo "Failed to delete<br/>";
}
// Mark to_delete only if user is receiver
$stmt = $con->prepare("UPDATE pm SET to_delete = ? WHERE id = ? AND to_id = ?");
$stmt->bind_param("sss", $session_id, $id, $session_id);
if ($stmt->execute()) {
echo"deleted successfully";
} else {
echo "Failed to delete<br/>";
}
评论
0赞
12/21/2019
我检查了您的脚本,但发送者或接收者没有更改任何内容
0赞
Triby
12/21/2019
进行一些调试以查看值是否正确,var_dump($id, $session_id);然后,打印查询并在 PhpMyAdmin 上进行测试。
0赞
12/21/2019
不显示任何错误消息,显示已成功删除消息,但未更改任何内容 PhpMyAdmin
0赞
Triby
12/21/2019
该消息表示查询已成功执行,但未在数据库中进行任何更改,这就是为什么您需要检查数据和查询以查找问题所在的原因。
1赞
12/26/2019
你的剧本对我帮助很大,非常感谢你
评论
from_delete = ? or to_delete =?
SET from_delete = ?, to_delete =?