2011-12-14 8 views
0

いくつかのWHMCSフックにフックされるいくつかの関数を作成しました。私の機能の中には、自分の機能性のために作成したデータベースの新しいテーブルが必要なものがあります。WHMCS、コードを一度だけ実行するには

私がやりたいことは、プログラムでデータベースにテーブルを作成することですが、テーブルを生成するコードを一度だけ実行し、コードを再度実行しないようにします。

これを行う方法はありますか良いアイデアはありますか?私が作成している私のWHMCSモジュールで

答えて

1

、私は次のロジックを使用します。

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

を私はどのIこれらの多くを持っていますループを実行します。

$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フックにフックされています。 –

+0

@MerianosNikosあなたはすでにデータベースに接続しているデータベースに問い合わせるか、dbの作成後に作成できるファイルをチェックする必要があります。スタンドアロンのインストールスクリプトを提供しない限り、それ以外の方法はありません。 – Prisoner

+0

クール!私はインストール後にファイルを作成し、それが存在することを確認します。どうもありがとう ! :) –

関連する問題