Ben sadece kontrol etmek istiyorum, bu bir veritabanında satırlar üzerinde yineleme ve işlendiğinde onları silmek iyi bir yoldur? Ben ilk vardı
- Tüm tut
- Süreç bütün
- Tümünü sil
Ancak yeni satırlar ilave olsaydı "Süreç tüm" adımı çalışırken ki (dışarıdan) sorunları bırakın düşündüm.
// the limited for loop is to prevent an infinite loop
// assume the limit to be much higher than the expected
// number of rows to process
for ($i = 0; $i < $limit; $i++)
{
// get next mail in queue
$st = $db->prepare('
SELECT id, to, subject, message, attachment
FROM shop_mailqueue
LIMIT 0,1
');
$st->execute();
$mail = $st->fetch(PDO::FETCH_ASSOC);
// if no more mails in queue, stop
if ($mail === false) {
break;
}
// send queued mail
$mailer = new PHPMailer();
$mailer->AddAddress($mail['to']);
$mailer->SetFrom('info@xxx.nl', 'xxx.nl');
$mailer->Subject = $mail['subject'];
$mailer->Body = $mail['message'];
$mailer->AddAttachment($mail['attachment']);
$mailer->Send();
// remove mail from queue
$st = $db->prepare('
DELETE FROM shop_mailqueue WHERE id = :id
');
$st->bindValue('id', $mail['id']);
$st->execute();
}