我在创建新闻简报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'查询时,你的代码是否完美? –