使用php分解数组作为WHERE的MySQL查询
经过几个小时的修补,我似乎无法理解这一点。我在数据库中有一个表,其中保存了一个充满值的CSV字段。使用php explode函数后,我只剩下一个数组使用php分解数组作为WHERE的MySQL查询,php,mysql,sql,Php,Mysql,Sql,经过几个小时的修补,我似乎无法理解这一点。我在数据库中有一个表,其中保存了一个充满值的CSV字段。使用php explode函数后,我只剩下一个数组 $emailarray = list($email) = explode(",", $csv); while($arrayreadable = mysql_fetch_array($emailarray,$emailcount[0])){ $makefeed = mysql_query("SELECT email,name FROM $s
$emailarray = list($email) = explode(",", $csv);
while($arrayreadable = mysql_fetch_array($emailarray,$emailcount[0])){
$makefeed = mysql_query("SELECT email,name FROM $statusdatabase WHERE email = $arrayreadable[`0`]'");
while ($friendfeedget = mysql_fetch_assoc($makefeed)) {
[Code for what I want the loop to do]
}
}
您可以在查询中使用
IN
子句,而不是每次循环并发出mysql查询,如下所示:
$emailarray = list($email) = explode(",", $csv);
$emails = implode(',', $emailarray);
$makefeed = mysql_query("SELECT email,name FROM $statusdatabase WHERE email IN ('".$emails."')");
while ($friendfeedget = mysql_fetch_assoc($makefeed)) {
// code
}
由于某种原因,我无法让您的解决方案发挥作用。查询工作正常,但where似乎找不到任何匹配项。您应该在where子句中指定以逗号分隔的电子邮件列表。