[英]PHP - Set a Variable within while loop
我目前正在嘗試在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();
}
我的問題是@PatrickQ建議的。 die()函數導致腳本完全停止運行。 我從mail.php中刪除了它,然后將需要的“ mail.php”移到了while循環之外。 然后我添加了$ mail-> send(); 功能到while循環。
一切都如我所願:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.