在PHP中轻松连接许多字符串
以下代码是正确的:在PHP中轻松连接许多字符串,php,Php,以下代码是正确的: $str = "INSERT INTO table ('".$val1."',"."'".$val2."'".","."'".$val3."'".","."'".$val4."')"; 但下面的代码不正确: $str = "INSERT INTO table ('".$val1."',"."'".$val2."'".","."".$val3."'".","."'".$val4."')"; 上面的示例很小,但您可以看到,当遗漏了“或”时,上述较大的情况对调试来说很烦人。有没
$str = "INSERT INTO table ('".$val1."',"."'".$val2."'".","."'".$val3."'".","."'".$val4."')";
但下面的代码不正确:
$str = "INSERT INTO table ('".$val1."',"."'".$val2."'".","."".$val3."'".","."'".$val4."')";
上面的示例很小,但您可以看到,当遗漏了“或”时,上述较大的情况对调试来说很烦人。有没有更好的方法在PHP中连接字符串?我想让变量的两边都有一个倒逗号,我想让字符串使用双倒逗号
一定有更好的方法..我从PHP编写了很多查询,这些查询与Oracle DB对话,我经常用这些字符串出错
谢谢:)
或者使用事先准备好的语句怎么样
echo implode(",", array(
'"'.$val1.'"',
'"'.$val2.'"',
'"'.$val3.'"',
));
但我必须说,使用准备好的语句可以更轻松地完成任务。使用和foreach创建自己的函数,并对每个参数使用sql转义。请参见第页的示例1使用准备好的语句: 不要只是连接任意值来创建SQL语句。您将在应用程序中创建数百万个SQL注入漏洞 至少,要使用mysql\u real\u escape\u字符串或等效字符串 我建议您在编写任何具有重要意义的PHP应用程序之前,先阅读一下PHP应用程序设计和应用程序设计。您可以试试这个
$str = "INSERT INTO table ('$val1','$val2','$val3')";
在处理大型参数集时,我更喜欢将它们放入数组中,并使用
内爆()
连接,如下面的代码所示:
$params = array('param1','param2','param3');
$param_string = "('".implode("','", $params)."')";
第1步:使用、准备好的语句和占位符。第2步:……第3步:利润。@mu太短:生产中不建议使用pdo oracle驱动程序,unfortunately@mu太短了:他的意思是,
。
应该是?
@zerkms:对,编辑太迟了。真是为Oracle驱动程序感到羞耻。太棒了。这将为我节省大量的时间时间!看起来很干净,但我认为你应该像其他人注意到的那样用mysql\u real\u escape\u string()包装$val1和$val2。@塞吉:这是oracle,不是mysql。我确实注意到prepareds更喜欢它,但我想我会犯同样多的错误:P.太棒了..我不知道你能做到(duh:P)。迄今为止的最佳解决方案+1。非常有价值的建议+1。尽管如此,请参阅上面关于PDO Oracle驱动程序的评论。热爱XKCD。使用mysql_real_escape_string(),即使我使用的是Oracle DB,我认为它可以确保我的查询是安全的,即使它是针对MySQL的,对吗?似乎找不到任何与Oracle等效的。@alemaster:对于Oracle,更好的方法是使用带有oci\u parse()的预备语句。
$params = array('param1','param2','param3');
$param_string = "('".implode("','", $params)."')";