PHP如何添加引号?
结果我们得到下一个PHP如何添加引号?,php,mysql,Php,Mysql,结果我们得到下一个$sqlL: $sqlL = ''; $Allel = ''; foreach($arr as $el){ $AllUrl .= ",'".addslashes($el)."'"; $sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');"; } $AllUrl = substr($Allel, 1); //delete first comma
$sqlL
:
$sqlL = '';
$Allel = '';
foreach($arr as $el){
$AllUrl .= ",'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$AllUrl = substr($Allel, 1); //delete first comma
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($Allel);";
但在不正确的情况下,这是行不通的
请告诉我如何在$Allel
中添加引号
注:我想得到下一个问题:
DELETE FROM Table WHERE ID= '4' AND URL NOT IN(house, test, test test);
您可以使用PHP
infrade()
函数
DELETE FROM Table WHERE ID= '4' AND URL NOT IN('house', 'test', 'test test');
您可以使用PHP内爆()函数
DELETE FROM Table WHERE ID= '4' AND URL NOT IN('house', 'test', 'test test');
试试这个:
<?php
implode(', ', $array);
试试这个:
<?php
implode(', ', $array);
对此只有一个答案。。。使用准备好的语句,不要使用字符串函数和“手工”引号等构建自己的查询。这是有风险的,与干净的编程相反
无论如何:
如果$Allel
包含纯值,请使用
$sqlL = '';
foreach($arr as $el){
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$AllUrl = "'".implode("','",$arr)."'";
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrl);";
第一行将在值周围环绕,
,第二行将在每个值周围环绕,
,对此只有一个答案。。。使用准备好的语句,不要使用字符串函数和“手工”引号等构建自己的查询。这是有风险的,与干净的编程相反
无论如何:
如果$Allel
包含纯值,请使用
$sqlL = '';
foreach($arr as $el){
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$AllUrl = "'".implode("','",$arr)."'";
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrl);";
第一行将在值的周围环绕,
,第二行将在每个值周围环绕,
,我想他想要一些不同的东西,你能试试吗
$Allel = array_map(function($v) { return "'" . $v . "'"; }, $Allel);
$Allel = implode(', ', $Allel);
和sql
implode("', '", $array);
我想他想要不同的东西,你能试试吗
$Allel = array_map(function($v) { return "'" . $v . "'"; }, $Allel);
$Allel = implode(', ', $Allel);
和sql
implode("', '", $array);
你可以使用内爆函数
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN('".$Allel."');";
请参见下面的示例
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
你可以使用内爆函数
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN('".$Allel."');";
请参见下面的示例
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
试试这个
$array = array("1","2","3");
echo "Array is: ".implode(",",$array );
Array is: 1,2,3
试试这个
$array = array("1","2","3");
echo "Array is: ".implode(",",$array );
Array is: 1,2,3
试试这个:
$sqlL = '';
$Allel = '';
$arr_Allel = array();
foreach($arr as $el){
$arr_Allel[] = ",'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$Allel = implode(",", $arr_Allel);
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($Allel);";
试试这个:
$sqlL = '';
$Allel = '';
$arr_Allel = array();
foreach($arr as $el){
$arr_Allel[] = ",'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$Allel = implode(",", $arr_Allel);
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($Allel);";
虽然使用数组和内爆可能是最好的解决方案,但您的代码的问题在于您使用引号设置了一个变量,然后将另一个变量添加到SQL中:-
<?php
foreach($arr as $el){
$AllUrl .= "'".addslashes($el)."' "; // Add items between spaces
}
$AllUrl_ = explode(" ",$AllUrl);
$AllUrlFinal = implode(",", $AllUrl_ ); // Change spaces by commas
$AllUrlFinal=trim($AllUrlFinal, ","); // would cut trailing and prefixing commas.
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrlFinal);";
要使用内爆,请将项添加到数组中(忽略逗号),然后在最终赋值中使用分隔逗号将该数组内爆到DELETE语句中:-
$sqlL = '';
foreach($arr as $el)
{
$AllUrl .= ",'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$AllUrl = substr($AllUrl, 1); //delete first comma
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrl);";
您应该使用mysql\u real\u escape\u string或等效工具对字符串进行转义。不确定您使用的是哪种数据库驱动程序,因此尽管mysql_*驱动程序已被弃用,但它们也可以这样做,例如:-
$sqlL = '';
foreach($arr as $el)
{
$AllUrl[] = "'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN(".implode(',', $AllUrl).");";
虽然使用数组和内爆可能是最好的解决方案,但代码中的问题是,您使用引号设置了一个变量,然后将另一个变量添加到SQL:-
<?php
foreach($arr as $el){
$AllUrl .= "'".addslashes($el)."' "; // Add items between spaces
}
$AllUrl_ = explode(" ",$AllUrl);
$AllUrlFinal = implode(",", $AllUrl_ ); // Change spaces by commas
$AllUrlFinal=trim($AllUrlFinal, ","); // would cut trailing and prefixing commas.
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrlFinal);";
要使用内爆,请将项添加到数组中(忽略逗号),然后在最终赋值中使用分隔逗号将该数组内爆到DELETE语句中:-
$sqlL = '';
foreach($arr as $el)
{
$AllUrl .= ",'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$AllUrl = substr($AllUrl, 1); //delete first comma
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN($AllUrl);";
您应该使用mysql\u real\u escape\u string或等效工具对字符串进行转义。不确定您使用的是哪种数据库驱动程序,因此尽管mysql_*驱动程序已被弃用,但它们也可以这样做,例如:-
$sqlL = '';
foreach($arr as $el)
{
$AllUrl[] = "'".addslashes($el)."'";
$sqlL .= "INSERT INTO Table (ID, Seet, Column) VALUES ('4', '$Seet', '$el');";
}
$sqlL .= "DELETE FROM Table WHERE ID= '4' AND URL NOT IN(".implode(',', $AllUrl).");";
什么是$Allel
?它不在代码中addslashes()
不是逃避数据库输入的好方法。如果不使用PDO或MySQLi,请使用准备好的语句。建议阅读:对不起,不是逗号-需要添加引号什么是$Allel
?它不在代码中addslashes()
不是逃避数据库输入的好方法。如果您不这样做,请使用PDO或MySQLi。请使用准备好的语句。建议阅读:对不起,不需要逗号-需要添加引号Sorry,不需要逗号,需要在$Allel
中添加引号,以便从ID为“4”且URL不在('house','test','test')的表中删除代码>抱歉,不需要逗号,需要在$Allel
中添加引号,从ID为'4'且URL不在('house','test','test')的表中获取删除代码>这个。这太多了!请查看准备好的报表!没有“纯价值”每个数据都是危险的!这这太多了!请查看准备好的报表!没有“纯价值”每个数据都是危险的!已编辑-$allurlfail=trim($allurlfail,“,”);//将删除尾随和前缀逗号。
编辑-$allurlfail=trim($allurlfail,“,”);//将删除尾随和前缀逗号。