سلام وقتتون بخیر چطوری میتونیم ردیفی که برای هر کاربر جهت ثبت کد تایید میسازیم رو بعد از چند ثانیه حذف کنیم بطوری که برای وریفای نیاز به درخواست جدید داشته باشد؟ ممنون میشم راهنماییم کنید 🙏 من سرچ کردم ولی به کد یا راه حل مشخص و دقیقی نرسیدم
سلام،
روشهای مختلفی برای پیاده سازی هست مثل cronjob , ...
یکی از روشها که توسط خود دیتابیس مدیریت میشه، نوشتن یک trigger هست. مدیریت این تریگر و تعدادشون دست خودت هست که چطور پیاده کنی.
بهترین پاسخ
محسن موحد۲۳ اردیبهشت ۱۴۰۳، ۰۹:۱۵
ممنون از توضیحاتتون
با توجه به سرچی که مطابق گفته شما انجام دادم
میتونم به این روش عمل کنم؟
global $wpdb;
$table = $wpdb->prefix . 'table_sms_verify_code';
$data = [
'phone_number' => $authUser,
'verification_code' => $verification_code,
];
$format = ['%s', '%s'];
$wpdb->insert($table, $data, $format);
$sql = "DELIMITER $$
CREATE TRIGGER delete_row_after_insert
AFTER INSERT ON {$wpdb->prefix}table_sms_verify_code
FOR EACH ROW
BEGIN
-- تعیین زمان حذف بعد از 30 ثانیه
SET @delete_time = NOW() + INTERVAL 30 SECOND;
-- حذف رکورد
INSERT INTO {$wpdb->prefix}actions (action_time, action_type, auth_user)
VALUES (@delete_time, 'delete_verification_code_row', NEW.phone_number);
END$$
DELIMITER ;";
$wpdb->query($sql);