WHMCS,我怎么能只运行一次代码

时间:2011-12-14 09:18:59

标签: php mysql whmcs

我创建了一些挂钩在几个WHMCS挂钩上的函数。我的一些函数需要成为我为我的功能创建的数据库中的新表。

我喜欢做的是以编程方式将表创建到数据库中,但运行只生成一次表的代码,再也不会再运行该代码。

对于如何做到这一点有什么办法或好主意吗?

1 个答案:

答案 0 :(得分:1)

在我创建的WHMCS模块中,我使用以下逻辑:

if(!mysql_num_rows(mysql_query("SHOW TABLES LIKE 'modulename_%'"))) {

    // there are no tables in the database for our module so we need to create them

}

然后我使用以下内容创建数据库:

$createTable[] = 'CREATE TABLE IF NOT EXISTS `modulename_table` ( `id` int(11) NOT NULL auto_increment, PRIMARY KEY  (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;';

我有很多这些,然后我通过循环运行:

$createTableCount = 0;
for($s=0,$e=count($createTable); $s<$e; $s++){
       $query = mysql_query($createTable[$s]);
       if($query)
            $createTableCount++;
}

然后我将每列添加到表中:

$alterTable[] = 'ALTER TABLE `modulename_table` ADD `something` int(11) NOT NULL;';

我也通过循环运行 - 这允许我添加新的列/表并重新运行安装脚本并添加任何尚不存在的列/表。