【发布时间】:2020-06-17 11:50:58
【问题描述】:
我有一个数据库字段,其中包含用逗号分隔的电子邮件,如下所示
email1@domain.com、email2@domain.com 等
我正在使用 PHP Mailer,并在这里找到了几篇文章,解释了如何遍历每封电子邮件以将每封电子邮件添加到电子邮件地址
我显然做错了,因为我下面的代码只发送到一封电子邮件
$sql="SELECT Email FROM Managers WHERE Company = '$name';";
$result = mysqli_query($db,$sql);
while ($row = mysqli_fetch_assoc($result));
$address = explode (',' , $row['Email']);
foreach ($address as $key => $v) {$mail->addAddress($key);}
当我输出结果以检查输出时,我只会将所有电子邮件视为一个没有逗号的字符串
任何建议都将不胜感激,因为从我在这里阅读的内容来看,这应该可行。
更新:我现在的工作如下。感谢您的帮助:
$sql="SELECT Email FROM Managers WHERE Company = '$name';";
$result = mysqli_query($db,$sql);
while ($row = mysqli_fetch_array($result)) {
$address = $row['Email'];
$address2 = explode (',',$address);
foreach ($address2 as $v) {$mail->addAddress($v);}
【问题讨论】:
-
你究竟输出了什么?您尝试过什么调试问题?
-
嗨 Nico,我在 var dump 中添加了,所以我可以看到查询正在获取什么。我还刚刚查看了初始数据库查询的结果,以检查是否正常。当我查看分解的输出时,它只显示来自 DB 的逗号分隔值,但没有逗号。我尝试更改分隔符并三次检查空格等数据。我还在代码中添加了“修剪”以防万一。我已经做出了 Synchro 指出的改变。我已经走到了一个死胡同!!!我的想法是我在做一些非常愚蠢的错误,但如果我是我就看不到它!
-
请分享转储代码,以及转储数据的结果
-
嗨。我正在使用: var_dump (explode(',', $row['Email'])); var_dump (explode(',', $v));输出为:array(1) { [0]=> string(0) "" } 我还输出 PHPMailer 错误:Mailer 错误:您必须提供至少一个收件人电子邮件地址。这很清楚!但它应该找到一个电子邮件地址,因为 sql 查找是 definitley 找到一个匹配谢谢
-
请通过编辑将所有此类解释添加到您的问题中。如果分解后的数组为空,则问题出在其他地方