💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Amir Shiripour
حذف خودکار ردیف ساخته شده بعد از چند ثانیه
محسن موحد حل شده توسط محسن موحد

سلام وقتتون بخیر
چطوری میتونیم ردیفی که برای هر کاربر جهت ثبت کد تایید میسازیم رو بعد از چند ثانیه حذف کنیم بطوری که برای وریفای نیاز به درخواست جدید داشته باشد؟
ممنون میشم راهنماییم کنید 🙏
من سرچ کردم ولی به کد یا راه حل مشخص و دقیقی نرسیدم

سلام،

روش‌های مختلفی برای پیاده سازی هست مثل 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);
Amir Shiripour ۲۳ اردیبهشت ۱۴۰۳، ۱۲:۲۸