2017-05-31 7 views
1

何とか私はStackoverflowの助けを借りてPHPMailerスクリプトを作成することができました。PHPMailer Cronジョブ一括電子メールソリューション

My Scriptは、データベースからリストを取得して電子メールを送信します。

問題は非常に大きなメールリストです。 私はcronジョブでメールを送信したい、毎時間100メールのみ。 私は限界を設定しました - select email from emailid LIMIT 0,100

しかし、問題は、スクリプトが実行されるたびに0〜100と100〜200を増やす方法です。 スクリプトは、毎回次の100件の電子メールを選択して送信します。

答えて

0

クエリをオフセットする必要があります。あなたのSQLを次のように変更すると、動作するはずです。

SELECT email FROM `emailid` LIMIT 100 OFFSET 100 

オフセット100は、「次の」100になります。最初は「オフセット0」または「オフセットコマンドをそのまま残してください」となります。プログラムごとにオフセットを増やす必要があります。

アドバイス記事に興味があるなら、私はテーブルに「送られた」フィールドを追加することを提案し、次のクエリ

SELECT email FROM `emailid` LIMIT 100 WHERE `sent` IS NOT NULL 

を使用すると思い次に、あなただけの電子メールの後にフラグに送信されたフィールドを持っています正常に送信されました。

+0

ありがとうございます。 – johndoe

+0

は、LIMIT 100 OFFSET 100と100,100 – johndoe

+0

の間に100,100の違いがなく、タイピングしていることに違いがあります。本質的にちょうど$ xはxが最後に保存された値です$ xの上に移動し続けると100は$ xから始まる次の100を取得します –

関連する問題