WHMCS, как я могу запустить код только один раз - PullRequest
0 голосов
/ 14 декабря 2011

Я создал несколько функций, которые подключены к нескольким обработчикам WHMCS.Некоторые из моих функций должны быть новой таблицей в базе данных, которую я создаю для своей функциональности.

Что мне нравится делать, так это программно создавать таблицу в базе данных, но запускать код, который генерирует таблицу, только одинвремя и никогда не запускать этот код снова.

Есть ли способ или хорошая идея, как это сделать?

1 Ответ

1 голос
/ 14 декабря 2011

В моем модуле 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;';

, который я также запускаю через цикл - это позволяет мне добавлять новые столбцы / таблицы и повторно запускать сценарий установки и добавлять любые столбцы / таблицы, которые еще не существуют.

...