【发布时间】:2019-07-07 10:18:39
【问题描述】:
我有一个复选框表单,它被发送到 mail.php 以进行邮寄。所选项目应通过邮件发送。我有一个查询来输出选定的项目。在邮件正文中;要回显从数据库中提取的所有选定项目,我需要将 while 循环等同于一个变量。但我无法做到平等。
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
include 'nedmin/netting/database.php';
if (isset($_POST['sendmail'])) {
$city=array_keys($_POST['cities']);
$cities=implode(",",$city);
$query = $db->prepare("SELECT * FROM semt WHERE semt_id IN('".$cities."')");
$query->execute();
while ($statement = $query->fetch(PDO::FETCH_ASSOC)) {
?>
<td><?php echo $statement["city_name"]?></td>
<?php }
$mail = new PHPMailer;
try {
/* SMTP parameters. */
$mail->isSMTP();
$mail->SMTPKeepAlive = TRUE;
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = 'tls';
...
...
...
$mail->isHTML(TRUE);
$mail->Subject = "Subject";
$mail->Body = "Selected cities: $......";
$mail->send();
}
catch (Exception $e)
{
echo $e->errorMessage();
}
catch (\Exception $e)
{
echo $e->getMessage();
}
}
?>
【问题讨论】:
-
不要用答案中的代码替换您的原始代码。读者需要看看答案是什么。
-
WHERE semt_id IN('".$cities."')不会按预期工作。见:can-i-bind-an-array-to-an-in-condition