Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 内爆并向字符串中添加字符以生成sql语句_Php_Sql_String - Fatal编程技术网

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

关于我的问题,我补充了一些东西,但你不能回答。