2011-12-14 75 views
0

我已经创建了一些挂钩在几个WHMCS钩子上的函数。我的一些功能需要成为我为我的功能创建的数据库中的新表。WHMCS,我怎样才能运行代码只有一次

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

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

回答

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;'; 

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

+0

蝙蝠逻辑,每次用户进入网站时都会查询数据库。我没有创建一个模块,只是挂在WHMCS钩子上的函数。 – 2011-12-14 09:42:00

相关问题