0
我正在尝试调试我正在处理的项目的新闻通讯邮件脚本。这对PHP Mailer来说工作得很好,但是我最终把我的邮件修改为Swift Mailer,并且因为我一直都遇到了最奇怪的问题。Mysqli读取数组警告,无法调试
我不断收到以下警告,while循环的第一次迭代之后(一个电子邮件是在MySQL的结果集发送到第一E-mail地址,然后我得到这样的警告):
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, integer given in /home1/username/public_html/domain/newslettermailer.php on line 15
这是我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('[email protected]')
->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('[email protected]' => '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/>';
}
}
在尝试调试,我修改了上面的脚本为以下,并得到了不是错误,没有警告什么那么,和所有电子邮件打印出:
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/>';
}
我一直在尝试调试这一段时间,现在真的很困难,我很欣赏任何有关这种情况的建议。
非常感谢提前!
+1,谢谢你的回复。我很感激!这确实是问题:) – AnchovyLegend
由于问题发生在第二次迭代中,寻找的显而易见的事情是对循环内变量的赋值,不是吗? – Barmar
对我来说不是那么明显,虽然它应该是,你是对的。出于某种原因,我认为这是与mysql相关的。 – AnchovyLegend