2016-07-30 4 views
-1

Я хочу отправить электронные письма нескольким лицам в цикле while с использованием PHPmailer. Но как только петля попадает в строку include '../email/PHPMailerAutoload.php';, она останавливается внутри цикла while. Полный код выглядит следующим образомPHPMailer уничтожает цикл While

<?php 
    $result = $con->prepare('SELECT * from table WHERE Date = ?'); 
    $result->execute([$Date]); 
    while($row = $result->fetch(PDO::FETCH_BOTH)){ 
     $Email=$row['Email']; 
     include '../email/PHPMailerAutoload.php'; 
     email_function($Email); 
    } 
?> 

Любые идеи?

+1

Переместить 'include', чтобы произойти до цикла. Всегда при разработке и тестировании кода PHP включите отображение ошибок. В верхней части вашего скрипта: error_reporting (E_ALL); ini_set ('display_errors', 1); 'Скорее всего, вы найдете PHP, жалующийся, что вы пытаетесь переопределить класс или аналогичный. Почти никогда не нужно или желательно «включать/требовать» файл внутри цикла. –

+1

Вы включаете автозагрузку EVERT TIME ROUND THE LOOP Название должно быть _ «Как я уничтожил это во время цикла» _ – RiggsFolly

+0

Спасибо всем, особенно Майклу Берковски :) – user5095266

ответ

0

PHPMailerAutoload.php должен быть включен/вызван один раз! Попробуйте следующее:

include '../email/PHPMailerAutoload.php'; 
$result = $con->prepare('SELECT * from table WHERE Date = ?'); 
$result->execute([$Date]); 
while($row = $result->fetch(PDO::FETCH_BOTH)){ 
    $Email=$row['Email']; 
    email_function($Email); 
} 
Смежные вопросы