CLOSE ×

MEMO

ちょっとした技術やツールの使用方法などを追加していきます。

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

更新日
経過日数
1385日
文字数
1827文字
所要時間
約5分
カテゴリー
データベース PHP CodeIgniter
CodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコード shadow

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

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

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

目次

  1. 最初に
  2. モデルの作成
  3. コントローラーの作成
  4. 最後に

01.最初に

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

サンプルテーブル

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

テーブルを作成

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

サイトURL/table/add

02.モデルの作成

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

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;
            }
        }
    }
?>
コードについて

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

$this->db->table_exists();

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

$this->load->dbforge();

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

$this->dbforge->add_field(); 

キーをセットします。

$this->dbforge->add_key();

テーブルを作成します。

$this->dbforge->create_table();

03.コントローラーの作成

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

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の配列に代入しています。

04.最後に

ざっくりとした内容ですがこれでサイトURL/table/addへアクセスすると
tableが作成されます。

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

データベースフォージークラス

Trackback URL

https://t-cr.jpmemo/20/trackback/

RELATED

CONTACT

ご質問、ご意見などお気軽にお問い合わせください。

^