【发布时间】:2014-04-14 17:48:23
【问题描述】:
我将尝试为我的模块创建一个小安装脚本。
当我调用$_GET["install"] 时,脚本正在运行。我看起来像这样:
public function install()
{
$this->sql->query("
INSERT
INTO cms_modules (title)
VALUES ('Guestbook')
");
$this->sql->query("
CREATE TABLE IF NOT EXISTS `cms_guestbook` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
");
}
效果很好。该表已安装并在cms_modules 中添加了一个新行,但我希望仅当cms_guestbook 表不存在时才激活 INSERT。
我搜索了一个答案,发现this 主题。我将尝试通过执行以下操作来使用 WHERE NOT EXISTS:
$this->sql->query("
INSERT
INTO cms_modules (title)
VALUES ('Guestbook')
WHERE NOT EXISTS (
SELECT 1 FROM cms_guestbook
)
");
但这对我没有用。表已安装,但未插入行。我也尝试过使用SHOW TABLES LIKE,但这似乎也不起作用。
任何建议或解决方案?
【问题讨论】:
标签: mysql insert not-exists