动态创建 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 事件,并根据到期时间删除这些事件。我非常感谢您的帮助!