使用php的foreach循环传递CONCATENATED sql

我是一名学习者和学生,我正在制作 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, 0, -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'

请告诉我应该怎么做。


四季花海
浏览 38回答 1
1回答

Helenr

您可以使用下面的代码,而不是执行您的代码。$arrayEmailList =&nbsp; &nbsp;array('','mrun@g.com','shorya@g.com');$EmailList&nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;"'".implode("','",array_filter($arrayEmailList))."'";$Query&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;"SELECT * FROM `user` WHERE `user_email` IN ( $EmailList);" ;echo $Query;//输出是SELECT * FROM `user` WHERE `user_email` IN ( 'mrun@g.com','shorya@g.com');
打开App,查看更多内容
随时随地看视频慕课网APP