-1

问题:任何一个回显都没有输出,尽管查询返回结果,也没有发送任何电子邮件。

代码:

<?php
$link = mysqli_connect('localhost','USER','PASSWORD','MY-DB');

$result = mysqli_query($link, "'SELECT * FROM Current WHERE  Status = 'IE-Window-Missing' order by location desc" );
$headers = 'From: SCS@cl.com' . "\r\n" .
'Reply-To: SCS@cl.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

if($result->num_rows >= 1){
$email = "d@cl.com";
$subject = "One or more devices have IE windows missing";
$message='The following devices are having issues: "';

while($row=$result->fetch_assoc()) {
$message.="{$row['Location']}\r\n";
}

$message.="has been accepted for review at redacted.";
if(mail($email, $subject, $message, $headers)) {
echo "Winning";
  //mail successfully sent
} else {
    echo "fail";
}
}
?>

对数据库进行直接 SQL 查询会产生结果……这里出了什么问题?

谢谢,

4

2 回答 2

1
$result = mysqli_query($link, "'SELECT * FROM Current WHERE  Status = 'IE-Window-Missing' order by location desc" );

问题是您没有检查 mysqli_query 的返回值。您假设它正在工作;你所有的echo电话都在if($result->num_rows >= 1){支票里面。因此,如果您的查询失败,它将不会到达任何一个。

实际问题是:

mysqli_query($link, "'SELECT * 
                     ^

'在 SELECT 查询的开头你有一个额外的。这将为您生成一个无效的 SQL 字符串,这意味着查询失败;并且没有返回任何记录。

您应该使用 来检查查询的响应mysqli_error,并做出适当的响应。

于 2013-08-29T15:13:47.883 回答
1

PHP邮件功能没有按预期工作?

不,它按预期工作。肯定和理所当然的。看起来你有错误的期望。

也许对文档进行现实检查会有所帮助?

于 2013-08-29T15:00:08.350 回答