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