Я пытаюсь отладить сценарий рассылки рассылки для проекта, над которым я работаю. Это работало отлично с PHP Mailer, однако я в конечном итоге изменил мою почту на Swift Mailer, и поскольку у меня была самая странная проблема.Mysqli fetch array warning, неспособный отлаживать
я получаю следующее предупреждение, после первой итерации цикла 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
Это мой 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
Поскольку проблема возникает на 2-й итерации, очевидная вещь для поиска - это назначение переменной внутри цикла, не так ли? – Barmar
Не было так очевидно для меня, хотя это должно было быть, вы правы. По какой-то причине я думал, что это связано с mysql. – AnchovyLegend