CodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコード

PHP
CodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコード
Memo
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ただいま、CodeIgniterにてオリジナルCMSを制作中の「とあるクリエイター」です。 その関係で「CodeIgniter」関連のメモの更新が増える予定です。

今回はCodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコードをメモしました。

最初に

まず、以下のサンプルテーブルを作ると仮定してサンプルコードを紹介いたします。
※実装時はフォームなどから、自由にフィールド名などの各項目を設定できるようにカスタマイズしてください。

サンプルテーブル

名前 データ型 デフォルト値 その他
id INT(5) auteincrement
str VARCHAR(100)
checkbox ENUM(a,b,c) a
created DATETIME

テーブルを自動で作成

以下のパスのページにアクセスすると上記のサンプルテーブルを作成する
仕様で作成します。

サイトURL/table/add

モデルの作成

以下のファイルを作成します。

application/model/table_model.php
<?php class Table_model extends CI_Model{ function __construct(){ parent::__construct(); $this->load->database(); $this->load->dbforge(); } public function add_table($fields,$table_name){ if(!$this->db->table_exists($table_name)){ $this->dbforge->add_field($fields); $this->dbforge->add_key('id'); $this->dbforge->create_table($table_name); return true; } } } ?>

コードについて

テーブルが存在しているか確認します。

php
$this->db->table_exists();

データベースフォージクラスを読み込みます。

php
$this->load->dbforge();

フィールドをセットします。

php
$this->dbforge->add_field();

キーをセットします。

php
$this->dbforge->add_key();

テーブルを作成します。

php
$this->dbforge->create_table();

コントローラーの作成

以下のファイルを作成します。

application/controller/table.php
<?php class talbe extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('Table_model'); } public add(){ $table_name = 'sample_table'; //テーブル名 $fields = array( 'id' => array( 'type' => 'INT', 'constraint' => 5, 'auto_increment' => TRUE ), 'str' => array( 'type' => 'VARCHAR', 'constraint' => '100' ), 'checkbox' => array( 'type' => 'ENUM', 'constraint' => array('a','b','c'), 'default' => 'a' ), 'created' => array( 'type' => 'DATETIME' ) ); if($this->Table_model->add_table($fields,$table_name)){ echo $table_name.'を作成しました。'; } } } ?>

コードについて

$table_nameに作りたいテーブル名を入れます。 $fieldsに作りたいテーブルのフィールドを入れます。 今回は上記サンプルテーブルの内容を``$fields`の配列に代入しています。

最後に

ざっくりとした内容ですがこれで以下へへアクセスすると
tableが作成されます。

サイトURL/table/add

いろいろとカスタマイズをして実装してみてください。

参考文献

終わりに

最後までご覧いただきありがとうございます。
この記事ではCodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコードについて紹介させていただきました。

これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。