微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态创建 MySQL 事件

如何解决动态创建 MySQL 事件

我的站点允许用户创建事件,我需要在这些事件发生后从 MysqL 数据库删除这些事件。因此,当用户创建他们的事件时,我试图在数据库中安排一个事件,该事件在用户提供的时间后立即删除用户的事件信息。

例如,我希望活动与这里的其他活动一样:

enter image description here

这是我尝试的一种尝试:

$stmtstr = "
        CREATE EVENT event_" . $roomID . "_" . $current_time . "_DELETEPRAYER
        ON SCHEDULE AT '" . $timetoDeletePrayerFormatted . "'
        DO
        DELETE FROM prayer_rooms WHERE roomID = $roomID
        ";
$stmt3 = $conn->prepare(strval($stmtstr));

$roomID、$current_time 和 $timetoDeletePrayerFormatted 都是有效值。即便如此,prepare() 在这里返回一个布尔值,表明 MysqL 语句有问题。我使用在这里进入 prepare() 的完全相同的字符串手动运行该语句,并且它成功运行且没有错误

我也尝试过使用 ?s 和 bind_param() 但没有成功。

对于什么类型的 MysqL 语句可以是动态的,是否有简单的限制?有什么方法可以根据用户提供的时间在数据库中创建计划事件吗?

解决方法

根据 Tangentially Perpendicular 的评论,我将每个事件的所有到期时间甚至存储在各自的表中,并创建了一个每隔几分钟运行一次的 MySQL 事件,并根据到期时间删除这些事件。我非常感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。