モジュール用の小さなインストール スクリプトを作成してみます。私が呼び出すと$_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
場合にのみ INSERT がアクティブになるようにしたいと思います。cms_guestbook
答えを探していて、このトピックを見つけました。WHERE NOT EXISTS
次のようにして、それを使用してみます。
$this->sql->query("
INSERT
INTO cms_modules (title)
VALUES ('Guestbook')
WHERE NOT EXISTS (
SELECT 1 FROM cms_guestbook
)
");
しかし、これは私にはうまくいきませんでした。テーブルはインストールされていますが、行は挿入されていません。私も使ってみSHOW TABLES LIKE
ましたが、それもうまくいかないようでした。
誰かの提案や解決策はありますか?