create_table

  create_table( array $table_data )

テーブルを作成します。内部処理としてテーブルの存在確認を行うため、事前に check_table_exists() を行う必要はありません。

パラメータ

$table_data

作成するテーブルのCREATE TABLEのSQL文を定義した sql キーを持つ配列を指定します。
table_data の指定がない、もしくは table_data 内にCREATE TABLEのSQL文定義要素である sql キーがない場合はエラーとなります。

返り値

array( bool, string )
テーブル作成処理の結果を含む配列を返します。第1要素に処理結果を示す Boolean 値が入ります。正常にテーブルが作成された場合は TRUE が、テーブル作成に失敗したり、作成対象テーブルがすでに存在している場合などは FALSE が入ります。第2要素には、処理ステータスのメッセージ文字列が入ります。

変更履歴

バージョン 内容
1.0.0
1.1.0 内部処理のテーブル存在確認部分のバグを修正

使用例

<?php
global $cdbt;
$new_table_data = array(
  "table_name" => "new_table", 
  "sql" => "CREATE TABLE new_table (
      `ID` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', 
      `account_name` varchar(200) NOT NULL COMMENT 'Account Name', 
      `gender` enum('male','female') NOT NULL COMMENT 'Gender', 
      `birth_year` year(4) COMMENT 'Birth year', 
      `birth_month` int(2) unsigned COMMENT 'Birth month', 
      `birth_day` int(2) unsigned COMMENT 'Birth day', 
      `password` varchar(100) NOT NULL COMMENT 'Password', 
      `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Created date', 
      `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Updated date', 
      PRIMARY KEY (`ID`), 
      INDEX index_1 (`account_name`)
    ) 
    ENGINE=InnoDB 
    DEFAULT CHARSET=utf8mb4 
    COMMENT='New sample table' ;"
);
$result = $cdbt->create_table($new_table_data);
echo $result[1];