Anc*_*end 0 php mysql mysqli swiftmailer
我正在尝试调试我正在处理的项目的新闻邮件脚本.这曾经与PHP Mailer完美配合,但我最终将我的邮件更改为Swift Mailer,因为我遇到了最奇怪的问题.
在while循环的第一次迭代之后,我一直收到以下警告(一封电子邮件发送到mysql结果集中的第一个电子邮件地址,然后我收到此警告):
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, integer given in /home1/username/public_html/domain/newslettermailer.php on line 15
Run Code Online (Sandbox Code Playgroud)
这是我的newlettrmailer.php脚本:
include('inc/connect.inc.php');
$query = "SELECT * FROM `newsletter`";
$result = mysqli_query($mysqli, $query);
$status = Array();
require('mailer/swift_required.php');
while($row = mysqli_fetch_array($result)){
$email = $row['email'];
echo $email . " GOOD<br/>";
// Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.domain.com', 25)
->setUsername('support@domain.com')
->setPassword('password');
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$mailTo = Array();
$mailTo[] = $email;
$message = Swift_Message::newInstance('Newsletter Test!')
->setFrom(array('support@domain.com' => 'Subject'))
->setTo($mailTo);
$body = '<strong style="text-decoration:underline;">Test</strong>';
$message->setBody($body,'text/html');
// Send the message
$result = $mailer->send($message);
if($result==0)
{ //MESSAGE FAILED
$status .= $email . ': <span style="color:red; font-weight:bold;">Fail</span><br/>';
}
else
{ //SUCCESS!
$status .= $email . ': <span style="color:green; font-weight:bold;">Success!</span><br/>';
}
}
Run Code Online (Sandbox Code Playgroud)
在尝试调试时,我将上面的脚本修改为以下内容,并且没有出现错误,也没有任何警告,所有电子邮件都打印出来:
include('inc/connect.inc.php');
$query = "SELECT * FROM `newsletter`";
$result = mysqli_query($mysqli, $query);
$status = Array();
require('mailer/swift_required.php');
while($row = mysqli_fetch_array($result)){
echo $row['email'] . '<br/>';
}
Run Code Online (Sandbox Code Playgroud)
我一直试图调试这一段很长一段时间,我真的很难有这个,我很感激为什么会发生这种情况的任何建议.
提前谢谢了!
你正在重用这个变量$result:
$result = $mailer->send($message);
Run Code Online (Sandbox Code Playgroud)
所以在while循环的第二次迭代中,它试图将其传递给mysqli_fetch_array()而不是返回结果mysqli_query().
为第二个结果使用不同的变量.
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |