0

いくつかの WHMCS フックにフックされるいくつかの関数を作成しました。私の機能のいくつかは、機能のために作成したデータベースの新しいテーブルである必要があります。

私がやりたいのは、プログラムでテーブルをデータベースに作成することですが、テーブルを生成するコードを 1 回だけ実行し、そのコードを再度実行することはありません。

それを行う方法や良いアイデアはありますか?

4

1 に答える 1

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

これもループを実行します。これにより、新しい列/テーブルを追加し、インストール スクリプトを再実行して、まだ存在しない列/テーブルを追加できます。

于 2011-12-14T09:38:58.037 に答える