从Mysql中获取变量并将其放入循环中的电子邮件正文中


Grabbing variable from Mysql and putting in email body within a loop

所以我有一个循环,它向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("@", "&#64;", $row["email"]) . ') ' . $mail->ErrorInfo . '<br />';
    break; //Abandon sending
} else {
    echo "Message sent to :" . $row['first_name'] . ' (' . str_replace("@", "&#64;", $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;

附言:你必须在循环的时候在里面做