在PHP中替换为模式

时间:2015-10-28 00:53:06

标签: php mysql replace

我有一个字符串:

CREATE TABLE IF NOT EXISTS  `coupons` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(255) NOT NULL,
  `off` int(11) NOT NULL,
  `order` int(11) NOT NULL,
  `value` tinyint(1) DEFAULT NULL,
  `status` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE `currency` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(10) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `prefix` varchar(12) DEFAULT NULL,
  `suffix` varchar(12) DEFAULT NULL,
  `format` char(1) DEFAULT NULL,
  `decimals` char(1) DEFAULT NULL,
  `exchange` float(15,6) DEFAULT NULL,
  `round` int(5) NOT NULL,
  `published` tinyint(1) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

并且想要将“CREATE TABLE”替换为“CREATE TABLE IF NOT NOT EXISTS”。 我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:3)

在PHP中(如果你真的需要以编程方式进行)你会做这样的事情(假设$string是包含两个SQL命令的变量):

$string = preg_replace('/CREATE\sTABLE\s+`/i', 'CREATE TABLE IF NOT EXISTS `', $string);

作品:https://gist.github.com/jpaljasma/8355c57cc5608c4c4ff8