可能重复:
PHP: mysql_fetch_array() expects parameter 1 to be resource, boolean given
我正在尝试将电子邮件发送到数据库中的地址。地址分为两部分:用户名(又名'数字')和@ something.com(又名'运营商')。所以电子邮件地址应该是'数字'。 '载体'
我的代码如下。邮件功能可以独立工作(不在循环中)。我得到的错误信息是“mysql_fetch_array()期望参数1是资源,第15行的home / username / public_html / script.php中给出的布尔值”
#!/usr/bin/php
<?
require_once("PHPMailer/class.phpmailer.php");
// connect to database
mysql_connect("localhost", "username", "password");
mysql_select_db("username_finalproject_Alerts");
// prepare query
$sql = "SELECT number, carrier FROM Alerts";
// execute query
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
//generate email address
$email = $row['number'] . $row['carrier'];
// send mail
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "private stmp address";
$mail->ContentType = 'text/plain';
$mail->IsHTML(false);
$mail->SetFrom("private email address");
$mail->AddAddress($email);
$mail->Subject = "TRY 1";
$mail->Body = "testing 1 2 3";
if ($mail->Send() === false)
die($mail->ErrorInfo . "\n");
}
?>
答案 0 :(得分:3)
您的查询一定有问题,您可以测试一下吗?
也许你可以尝试捕捉错误
if(!$result)
{
echo mysql_error();
}
答案 1 :(得分:0)
除非您登录数据库是&#34;用户名&#34;你的密码是&#34;密码&#34;我想你可能意味着
mysql_connect("localhost", $username, $password);
不确定此代码是否是您的代码,或者您刚刚更改了隐私权,但认为可能值得指出。
答案 2 :(得分:0)
为了方便您查询,您还可以使用:CONCAT(number, carrier)
,它为您提供单个结果中两行的组合结果,
第二个全部建议使用mysql_query($sql) or die('Error in Query!<br>' . mysql_error());
因此,如果您的查询中出现错误,那么您将通过mysql_error()
答案 3 :(得分:0)
检查mysql_num_rows($rows)>0
// connect to database
mysql_connect("localhost", "username", "password");
mysql_select_db("username_finalproject_Alerts");
// prepare query
$sql = "SELECT number, carrier FROM Alerts";
// execute query
$result = mysql_query($sql);
if(mysql_num_rows($result)>0) {
while ($row = mysql_fetch_array($result))
{
//generate email address
$email = $row['number'] . $row['carrier'];
// send mail
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "private stmp address";
$mail->ContentType = 'text/plain';
$mail->IsHTML(false);
$mail->SetFrom("private email address");
$mail->AddAddress($email);
$mail->Subject = "TRY 1";
$mail->Body = "testing 1 2 3";
if ($mail->Send() === false)
die($mail->ErrorInfo . "\n");
}
}
?>
答案 4 :(得分:-2)
像这样写
$email = $row[0] . $row[1];