php在数据库中发送电子邮件

时间:2018-04-20 08:42:21

标签: php email pdo

我正在尝试从我的数据库向所选用户发送电子邮件。我执行选择查询,然后使用电子邮件地址的结果发送邮件。

代码:

 foreach($stmt->fetchAll() as $result) 
{
    $mail = $result['email'];


    //Email information

  $to_email = "$mail";
  $from_email = "myemail@mysite.com";
  $subject = "Subject";
  $comment =  "Content"
  mail($to_email, "$subject", $comment, "From: Website <" . $from_email . ">");
}

它可以工作,但会向每个用户发送多封电子邮件。例如。如果选择了10个用户,则每个用户收到10封电子邮件。我知道这是因为foreach,我也尝试了while。但我不知道如何解决。

1 个答案:

答案 0 :(得分:0)

这不是fetchAll()的工作原理。它会为您提供一个包含查询中所有行的结果数组。因此,如果您使用foreach($stmt->fetchAll() as $result),您将在所有结果上循环多次。您需要获取所有结果,然后循环它们。

$results = $stmt > fetchAll ();
foreach (results as $result) {
...
}

或在循环中使用fetch()

while (($result = $stmt -> fetch ()) !== false) {
...
}