php - 当您两次选择同一个表作为 a 和 b 时,如何在电子邮件中调用表名?

标签 php mysql email

我在 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/

相关文章:

php - 来自 Ajax GET 的语法错误 MySQL

mysql - 如何查看执行SQL语句的准确时间?

MySQL 使用 IN/FIND_IN_SET 在子查询中读取多行

html - 此消息已被修改以适合您的屏幕。点按此处显示原件

php - jQuery ID 选择动态

php - Klarna 与网上商店的整合

python - 使用 python 语言的正则表达式

javascript - mailto : supported? 有多好

php - mysql_num_rows()期望参数1为资源,字符串在

jquery - 使用 AJAX 将 sessionStorage 对象 POST 到 Flask