用单引号PHP包装一个字符串

时间:2015-04-28 09:18:10

标签: php mysql quote

我正在构建一个查询,我需要用single 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) - 1):
                        $sqlRome.=",";
                   $sqlRome.=") GROUP BY id_jeune HAVING COUNT(*)=" . $j;

我以前做过,但我记不起来了!我想这一定很简单。

2 个答案:

答案 0 :(得分:1)

除了任何潜在的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;

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

答案 1 :(得分:0)

尝试 -

            $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;