问题描述
我是一个学习者和学生,我正在为其建立一个aq / a论坛,我必须通过串联的sql,所以我试图创建一个字符串,我必须使用php中的foreach循环来传递我的sql语句,但是我没有得到想要的结果,
这是我的数组(使用给定var_dump的数据库生成 结果):
array(3) { [0]=> string(0) "" [1]=> string(10) "mrun@g.com" [2]=> string(12) "shorya@g.com" };
<?php
foreach ($_array_following as $__name){
$__feed_flist = "";
if($__name){
$__feed_flist .= "'";
$__feed_flist .= $__name;
$__feed_flist .= "',";
}
}
$_selected_names = substr($__feed_flist,-1);
echo var_dump($_selected_names);
?>
这是想要的:
'mrun@g.com','shorya@g.com'
以便我可以将其传递给我的sql:
$sql = "SELECT * FROM `user` WHERE `user_email` IN ( $_selected_names);";
但是我得到的只是数组中的最后一个元素:
'shorya@g.com'
请告诉我该怎么做。
解决方法
您无需使用代码,而可以使用以下代码。
$arrayEmailList = array('','mrun@g.com','shorya@g.com');
$EmailList = "'".implode("','",array_filter($arrayEmailList))."'";
$Query = "SELECT * FROM `user` WHERE `user_email` IN ( $EmailList);" ;
echo $Query;
//输出为
SELECT * FROM `user` WHERE `user_email` IN ( 'mrun@g.com','shorya@g.com');