我们已经收到了数千个这样的 MySQL INSERT 查询字符串:
$sql = INSERT INTO my_table VALUES ( 123, '456', 'Don't fail', 'hellow world' )
sql 字符串只是在一个项目中提供给我们的。
问题是,在某些查询中,某些字段值在中间有单引号,因此在运行mysqli_query($sql)时会引发错误。
在我的例子中,如果我转义整个 $sql 字符串,它也会转义 \'456\' 或 \'Don\'t fail\',这也会抛出和错误,这就是我需要提取和转义的原因单独的值,然后将 sql 查询重新组合在一起。
我需要从括号内提取值并将它们放入一个数组中,这样我就可以单独对它们进行转义。像这样的东西:
$vals[0] = 123
$vals[0] = 456
$vals[0] = Don't fail
$vals[0] = hellow world
有我可以使用的正则表达式吗?
我知道表“my_table”的列数。
还有其他解决方案吗?
谢谢