Php 用单引号包装字符串

Php 用单引号包装字符串,php,mysql,quote,Php,Mysql,Quote,我正在生成一个查询,我需要用单引号将字符串包装起来: $sqlRome.="SELECT distinct id_jeune FROM jeunes_rome WHERE code_rome IN ("; foreach ($liste_rome as $rome): $sqlRome.="'".$rome."'";//HERE if ($j < count($liste_rome)

我正在生成一个查询,我需要用
单引号将字符串包装起来

$sqlRome.="SELECT distinct id_jeune FROM jeunes_rome WHERE code_rome IN (";
                foreach ($liste_rome as $rome):
                 $sqlRome.="'".$rome."'";//HERE
                    if ($j < count($liste_rome) - 1):
                        $sqlRome.=",";
                   $sqlRome.=") GROUP BY id_jeune HAVING COUNT(*)=" . $j;
$sqlRome.=“从代码所在的jeunes\u rome中选择不同的id\u jeune(”;
foreach($liste_rome as$rome):
$sqlRome.=“'$rome.'”;//此处
如果($j
我以前做过,但我不记得了!我想一定很简单。

试试-

            $sqlRome.="SELECT distinct id_jeune FROM jeunes_rome WHERE code_rome IN (";
            foreach ($liste_rome as $rome) {
                $var[] = "'".$rome."'";
            }
            $sqlRome.= implode(',', $var);
            $sqlRome.=") GROUP BY id_jeune HAVING COUNT(*)=" . $j;

除了任何潜在的sql注入问题之外,您做得很好

但是,块结构确实有问题,请使用
{…}
或使用正确的块结尾结束
foreach():
if():
语句:

$sqlRome="SELECT distinct id_jeune FROM jeunes_rome WHERE code_rome IN (";
//      ^ no concatenation here
foreach ($liste_rome as $rome):
     $sqlRome.="'".$rome."'";//HERE
     if ($j < count($liste_rome) - 1):
           $sqlRome.=",";
     // end the if statement
     endif;
// end the foreach loop
endforeach;
$sqlRome.=") GROUP BY id_jeune HAVING COUNT(*)=" . $j;
$sqlRome=“从代码所在的jeunes\u rome中选择不同的id\u jeune(”;
//^此处没有连接
foreach($liste_rome as$rome):
$sqlRome.=“'$rome.'”;//此处
如果($j

那么,
$j
是从哪里来的呢?因为它在循环中没有变化,所以它要么总是添加逗号,要么从不添加逗号。这可能不是你想要的。

我发布的代码是一个大查询的一部分,这就是我第一次关注的原因。我还增加了$j。谢谢@jeroen