我会尝试为我的模块创建一个小安装脚本。当我调用$_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。
我搜索了一个答案并找到了这个主题。我将尝试WHERE NOT EXISTS
通过执行以下操作来使用它:
$this->sql->query("
INSERT
INTO cms_modules (title)
VALUES ('Guestbook')
WHERE NOT EXISTS (
SELECT 1 FROM cms_guestbook
)
");
但这对我没有用。表已安装,但未插入行。我也尝试过使用SHOW TABLES LIKE
,但这似乎也没有用。
任何建议或解决方案?