我在 mysql 查询中调用名为 query
的表两次。它为我提供了附加并通过电子邮件发送所需的所有详细信息。但是,当我发送电子邮件时,它会获取部分数据。我认为发生这种情况是因为两个表具有相似的列名。
我尝试使用 $mail->addAddress($row_mail['a.query_email'], $row_mail['a.query_name']);
从表查询中提取数据a
然后它给我错误注意: undefined index :a.query_email
。
$sql_mail = "SELECT * FROM query a, query b WHERE a.query_id = '$_GET[q_id]' AND
a.query_id = b.query_reply_id ORDER BY b.query_id DESC";
$run_mail = mysqli_query($conn, $sql_mail);
$row_mail = mysqli_fetch_assoc($run_mail);
$mail->addAddress($row_mail['query_email'], $row_mail['query_name']);
foreach (explode(',', $row_mail['query_reply_files']) as $file_send) {
$path = "../files/queryfiles/".$file_send;
$mail->addAttachment($path, $file_send); }
$mail->isHTML(true); // Set email format to HTML
$bodyContent = $row_mail['query_reply_message'];
最佳答案
如果列名称不明确或在某种程度上未知,请将其明确化。所以代替这个:
SELECT * FROM query a, query b ...
更像这样:
SELECT
a.query_email AS query_email,
a.query_name AS query_name,
...
FROM query a, query b
...
查询的内容要准确。它使您的其他代码更容易、更一致,并向查询引擎提供更明确的指令。减少歧义总是一件好事。
关于php - 当您两次选择同一个表作为 a 和 b 时,如何在电子邮件中调用表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719713/