You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cron任务邮件中添加客户姓名、金额等数据库字段?

修改邮件内容添加指定字段的实现方法

核心改动步骤:

  • 优化SQL查询(推荐):将原select *改为明确查询所需字段,减少数据传输量,代码更清晰
  • 扩展邮件内容拼接逻辑:在循环中加入customer_name、customer_surname和amount字段,调整显示格式让信息更直观
  • 可选:处理空值:对可能为空的字段设置默认显示值,避免邮件内容出现空白

修改后的完整代码

<?php
include "../lib/include.php";

$yesterdayDate = date("Y-m-d 09:00:00", strtotime("-1 days"));
// 明确指定需要查询的字段,替代select *
$query = "select customer_name, customer_surname, amount, pay_url from links where status = 1 and cc_payment_id != '' and payment_date >= '".$yesterdayDate."' and payment_date <= '".date("Y-m-d 08:59:59")."'";

$q = $db->query($query);
$mail_content = ""; // 初始化变量,避免未定义的警告
foreach ($q AS $a) {
    // 处理可能为空的字段,设置默认值
    $name = !empty($a["customer_name"]) ? $a["customer_name"] : "未填写";
    $surname = !empty($a["customer_surname"]) ? $a["customer_surname"] : "未填写";
    $amount = !empty($a["amount"]) ? $a["amount"] : "0.00";
    
    // 拼接包含所有字段的邮件内容
    $mail_content .= "客户姓名:{$name} {$surname}<br>";
    $mail_content .= "支付金额:{$amount}<br>";
    $mail_content .= "支付链接:{$a["pay_url"]} -> Paid<br><br>"; // 加空行分隔每条记录
}

if ($mail_content != "") {
    SendMail($settings["system_email"], $mail_content, "Paid Reservations");
}
?>

关键改动说明

  1. SQL查询优化:原代码用select *会查询表中所有字段,改为明确指定需要的字段后,不仅提升查询效率,也能避免后续表结构变更带来的意外问题。
  2. 字段拼接与格式调整:每条记录单独显示客户姓名、支付金额和支付链接,并用空行分隔,让邮件内容更易读。
  3. 空值处理:通过三元运算符判断字段是否为空,为空时显示默认值,避免邮件中出现空白内容,提升可读性。

内容的提问来源于stack exchange,提问作者slckv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:24:20