我目前正在尝试在while循环中设置一个等于数组不同值的变量。我有我的select语句设置,以便它成功地提取信息,并可以通过回显相关的类来显示。但是,如果我尝试在第二次传递中将行设置为等于变量,则它不会运行并完成while循环。
$username = "xxx";
$password = "xxx";
$hostname = "xxx";
$database = "xx";
$dbhandle = mysqli_connect($hostname, $username, $password, $database) or die("Unable to connect to MySQL");
$conn = new mysqli($hostname, $username, $password, $database);
$date = "1996-03-12 12:03:00";
$selectcmd = "SELECT starttime, endtime, partner, worklist, serviceloss, servicereference, siteaddress, ticketref FROM work WHERE starttime='$date'";
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
$result = $conn->query($selectcmd);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$body = $row["starttime"].$row["endtime"];
require "mail.php";
}
} else {
echo "No Mail To Send";
}
$conn->close();
mail.php是PHPMailer函数,可以发送电子邮件。
我知道问题是我正在尝试在while循环中设置变量。但是,我不知道如何克服这一点。我试图在while循环结束时取消身体。
对于那些问过的人来说,mail.php:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';
$mail = new PHPMailer();
try {
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->Username = 'user@example.com';
$mail->Password = 'secret';
$mail->Port = 25;
$mail->setFrom('test@test.com', 'test');
$mail->addAddress('joe@example.net');
$date = "today";
$mail->isHTML(true);
$mail->Subject = 'Important Notification';
$mail->Body = $body;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
die();
} catch (Exception $e) {
die();
}
答案 0 :(得分:0)
我的问题是@PatrickQ建议的。 die()函数导致脚本完全停止运行。我从mail.php中删除了这个,然后移动了require' mail.php'在while循环之外。然后我添加了$ mail-> send();函数到while循环。
一切都如我所愿:)