我在創建新聞簡報PHP文件並執行它時遇到了問題。MYSQL fetch_array創建無限循環;
<?php
include_once "connect_to_mysql.php";
$sql = mysql_query("SELECT * FROM news WHERE received='0' LIMIT 20");
$mail_body = "";
while($row = mysql_fetch_array($sql)){
$id = $row["ID"];
$name = $row["name"];
$email = $row["email"];
$mail_body= "Test message";
$subject = "PHP Newsletter";
$headers = "From: [email protected]\r\n";
$headers = "Content-type: text/html\r\n"; //To musi byc zawarte jeśli nasz email będzie w formie HTML
$to = "$email";
$mail_result = mail($to, $subject, $mail_body, $headers) or die ("Error!");
if ($mail_result) {
mysql_query("UPDATE news SET received='1' WHERE email='$email' LIMIT 1");
} else {
echo ("Some freaking error :o!");
}
}
?>
我有一個連接到我的數據庫。我確實把一個電子郵件 - 我的這個數據庫。我在我的表中將接收設置爲默認值0。所以當循環開始時,它應該從我的數據庫中獲取數組 - >發送電子郵件 - >將收到的設置爲'1'並停止 - >從表中獲取其他電子郵件並執行相同操作。
但問題是,當我進入這個地址http://.../blast_script.php腳本不斷髮送給我電子郵件。我必須從我的數據庫中刪除表格才能停止它。
如何防止這個無限循環向數據庫中的每封電子郵件發送一條消息?
是您的電子郵件地址新聞表不止一次?另外,您不應該使用'mysql_ *'庫,因爲它們已被棄用,請檢查PDO或MySQLi。 – doublesharp
它只使用一次。 10分鐘前我輸入了blast_script.php地址,9.5分鐘前刪除了表格,我仍然不斷收到電子郵件! – Ancinek
當你不使用'UPDATE'查詢時,你的代碼是否完美? –