Php 内爆并向字符串中添加字符以生成sql语句
我收到一个文本区的输入,格式如下:Php 内爆并向字符串中添加字符以生成sql语句,php,sql,string,Php,Sql,String,我收到一个文本区的输入,格式如下: value0 value1 value2 value3 现在我想把它分解成一个数组,再内爆成字符串,这样 INSERT INTO `table` (`valueField`, `myField`) VALUES ('value0','assignedValue'), ('value1','assignedValue'), ('value2','assignedValue'), ('value2','assignedValue') 其中,assignedVa
value0
value1
value2
value3
现在我想把它分解成一个数组,再内爆成字符串,这样
INSERT INTO `table` (`valueField`, `myField`) VALUES
('value0','assignedValue'),
('value1','assignedValue'),
('value2','assignedValue'),
('value2','assignedValue')
其中,assignedValue
是固定的
以下是我所做的:
$myArray = explode(PHP_EOL, $_POST['input']);
foreach ($myArray as $key => $value) {
$myArray[$key] = trim(preg_replace('/\s\s+/', ' ', $value));
}
$data = "('" . implode("','assignedValue'),'", $myArray) . "'";
$sql = "INSERT INTO `table` (`valueField`, `myField`) VALUES $data";
echo $sql;
因此,这是错误的:
INSERT INTO `table` (`valueField`, `myField`) VALUES ('value0','assignedValue'),'value1','assignedValue'),'value2','assignedValue'),'value3'
另外,如果在
regex
中有更好的方法,请。如果要使用内爆进行此操作,必须执行以下操作:
$data = "('" . implode("','assignedValue'),('", $myArray) . "','assignedValue')";
稍微好一点的是:
foreach ($myArray as $key => $value) {
$value = trim(preg_replace('/\s\s+/', ' ', $value));
$myArray[$key] = '(\''. $value .'\',\'assingedValue\')';
}
$data = implode(',', $myArray);
关于我的问题,我补充了一些东西,但你不能回答。