我是PHP的新手。 这是我的代码:
$email_db = mysql_query("SELECT emails FROM email_feeds") or die(mysql_error());
$recipients = array();
while($row = mysql_fetch_assoc( $email_db )){
$recipients[] = $row;
}
$sendTo = implode(', ', $recipients);
echo($sendTo);
我在这里尝试从我的数据库中的 email_feeds 表中获取电子邮件列中的数据,然后将其放入数组中( $ recipients )然后以逗号分隔的形式回复它。
E.g。 john@mysite.com,mike,mysite.com,claire@mysite.com
我的问题是当我运行它时会显示"数组到字符串转换" 通知。
请帮忙! :)
答案 0 :(得分:0)
mysql_fetch_assoc
返回列数组
即使您只有一列,它仍然是包含该列的数组。
所以,当你这样写:
$recipients[] = $row;
您要将新的数组添加到$recipients
,而不是新字符串。
Imploding $recipients
试图将数组内爆,就像它们是字符串一样,它们不是。
尝试:
$recipients[] = $row['emails'];
阅读the documentation for the function you're using。
特别是要密切注意大红色的弃用警告。
答案 1 :(得分:0)
您正在使用mysql_fetch_assoc
,它返回一个关联数组。你真的应该切换到mysqli
函数。不推荐使用mysql_
个函数。当它返回一个数组时,您将在此处为收件人数组中的每个元素分配一个完整的数组:
$recipients[] = $row;
你需要的只是数组中的字符串,所以你可以这样做:
$recipients[] = $row['emails'];