PHP Regex更改MySQL脚本插入集以插入值

时间:2018-04-11 05:07:57

标签: php mysql regex insert set

我想从MySQL移植PHP代码以支持SQLite,但由于SQL有点不同,我需要将我的sql脚本从MySQL更改为SQLite。 例如: 从

insert into table1 SET field1=value1,field2=value

insert into table1 (field1,field2) values(value1,value2)

通过尝试Regex

,这似乎应该是微不足道的
/(INSERT *INTO\s+)(\w+)\s+(SET)\s+([\w+\s*=\s*\w+,?\s*]+)/gi

它可以解析sql脚本,你可以检查一个regex101 online parser

困难的是我需要在PHP代码中替换sql脚本,我对正则表达式不太好,我尝试了谷歌。

$this->db->query("INSERT INTO `" . DB_PREFIX . "extension` SET `type` = 'dashboard', `code` = 'sale'"); 

我需要将其更改为:

$this->db->query("INSERT INTO `" . DB_PREFIX . "extension` (`type`,`code`) VALUES('dashboard', 'sale'"); 

这里DB_PREFIX是一种类似'OC _'

的const值

这更难:

$this->db->query("INSERT INTO `" . DB_PREFIX . "upload` SET `name` = '" . $this->db->escape($name) . "', `filename` = '" . $this->db->escape($filename) . "', `code` = '" . $this->db->escape($code) . "', `date_added` = NOW()");

我的问题是如何使用正则表达式来解决它。

0 个答案:

没有答案