所以我有一个循环,它向hours_left <= .5
所在的所有记录发送电子邮件。
使用:$sql = 'SELECT first_name, email, last_emailed FROM clients WHERE hours_left <= .5';
我正在获取要发送到的电子邮件。
在第4行,我想我会把主体设置在那里,这样它就可以说:"你好,<first_name>
,看看这个。"但我不知道如何访问first_name
,所以主体会随着每次循环而变化。我是php的新手,对于像我这样的假人来说,更容易解释就太好了。
while ($row = $result->fetch_assoc()) {
var_dump($row);
$mail->addAddress($row['email'], $row['first_name']);
$mail->Body = "hello" ; // <----this is where I'm clueless
if (!$mail->send()) {
echo "Mailer Error (" . str_replace("@", "@", $row["email"]) . ') ' . $mail->ErrorInfo . '<br />';
break; //Abandon sending
} else {
echo "Message sent to :" . $row['first_name'] . ' (' . str_replace("@", "@", $row['email']) . ')<br />';
//preapre statement safer way of updating shit
if (!($stmt = $mysqli->prepare("UPDATE clients SET last_emailed = ? WHERE email = ?"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$stmt->bind_param('ss', $today, $row['email'])) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
$stmt->close();
}
// Clear all addresses and attachments for next loop
$mail->clearAddresses();
}
我很难准确地说出我应该在谷歌上搜索的内容,所以现在我来了。哦,我也在使用PHPMailer,我正在处理发送和访问数据库的事情,除了弄清楚如何插入接收此消息的人的first_name
之外,一切都在工作。
替换此行:
$mail->Body = "hello" ; // <----this is where I'm clueless
带有:
$mail->Body = "hello {$row['first_name']}";
或:
$name = $row['first_name']; $mail->Body = "hello $name";
或:
$name = $row['first_name']; $mail->Body = "hello ".$name;
附言:你必须在循环的时候在里面做