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

wrap a string with single quotes PHP

我正在构建一个查询,我需要用 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;

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

试试 -

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

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