我一直在尝试使用php的preg_split将mysql的sql insert语句字符串重写成一般格式,例如:
INSERT INTO`table_name`
SET`col1` = 123,`col2` ='那是''测试用例'',那也是'。'
预期结果:
的数组[0] = 'COL1'
阵列[1] = 123
阵列[2] = 'COL2'
数组[3] ='那是''测试用例'',那也是'。'
因此,我可以使用结果数组将sql写入以下内容:
插入table_name(col1,col2)
价值观(123,'那是''测试用例'',那也是'。');
显然像 preg_split('/,/',$ source)这样的简单函数在所有情况下都不起作用。我想知道是否有更好的方法来做到这一点?提前谢谢。
答案 0 :(得分:0)
/**
* @param array $fields_values
* @param string $table
* @return string
*/
function insertQuery(array $fields_values, $table) {
$fields = implode(', ', array_keys($fields_values));
$values = implode(', ', array_values($fields_values));
return $query = "INSERT INTO {$table} ({$fields}) VALUES ({$values})";
}