Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mandrill似乎正在破坏MySQL选择_Php_Mysql_Select_Mandrill - Fatal编程技术网

Php Mandrill似乎正在破坏MySQL选择

Php Mandrill似乎正在破坏MySQL选择,php,mysql,select,mandrill,Php,Mysql,Select,Mandrill,我已经把它剥离下来,试图找到这个问题的根源,但根本无法指出它 这将成功地回显每个ID $result = mysqli_query($con,"SELECT id FROM users"); // Each user matching criteria while($row = mysqli_fetch_array($result)) { echo $row['id']; } 但是,当我包含Mandrill时,它停止工作,但是我仍然会得到第一个ID echo'd //在数据库中

我已经把它剥离下来,试图找到这个问题的根源,但根本无法指出它

这将成功地回显每个ID

$result = mysqli_query($con,"SELECT id FROM users");

// Each user matching criteria
while($row = mysqli_fetch_array($result))
{   
    echo $row['id'];
}
但是,当我包含Mandrill时,它停止工作,但是我仍然会得到第一个ID echo'd

//在数据库中搜索昨天注册的用户 $result=mysqli_查询($con,“从用户中选择id”)

这对我来说是原始查询的问题。。。但我不明白为什么曼德尔会导致这种情况发生

还值得注意的是: -没有来自Mandril的错误消息
-电子邮件确实成功地发送了

最初,
$result
变量只存储了调用mysqli\u查询的结果,并且工作得很好。但是,当您添加邮件发送代码时,您意外地重用了相同的变量来存储
Mandrill
操作的结果:

$result = $mandrill->messages->sendTemplate(...);
…从而丢失其初始值(mysqli_result的
mysqli_
),并将其(资源)与新值(数组)交换-因此会收到错误消息

显然,最简单的解决方法是重命名此变量:

$mailStatus = $mandrill->messages->sendTemplate(...);
print_r($mailStatus); // or do something else with it
底线是:尽量避免使用过于通用的名称-最终所有
$vars
$data
$result
在混合使用时都会对您造成很大的伤害。我在这里甚至没有谈论可读性。)



作为旁注(感谢@Pierre提到这一点),您最好将
$mandrill
变量的实例化移到循环之外-否则每次处理新行时,您都会使用
include

您应该将include和$mandrill=new mandrill添加到循环之外,因此,您不需要在循环的每次迭代中包含一个文件并实例化一个新对象
$result = $mandrill->messages->sendTemplate(...);
$mailStatus = $mandrill->messages->sendTemplate(...);
print_r($mailStatus); // or do something else with it