- Custom DataBase Tables
- CDBT Version 1.x
- メソッド・リファレンス
- validate_create_sql
validate_create_sql
validate_create_sql( string $table_name, string $sql )
テーブル作成SQL(CREATE TABLE)文の検証と最適化を行います。この関数によって最適化されたテーブル作成SQL文を create_table() メソッドに与えることでデータベース上にテーブルを作成することが可能です1。ただし、現在のところ create_table() で作成したテーブルはCDBTプラグインの管理下におかれないため、CDBT管理コンソールからGUIを経由して利用することはできません(※ 将来のバージョンにて対応する予定です)。
パラメータ
$table_name
$sql
返り値
array( bool, string )
このメソッドは検証・最適化処理の結果を含む配列を返します。第1要素に処理結果を示す Boolean 値が入ります。検証結果が正常だった場合は TRUE 、それ以外は FALSE が入ります。第2要素には、正常処理時に最適化されたテーブル作成SQL文が返ります。それ以外の時は NULL が返ります。
変更履歴
| バージョン | 内容 |
|---|---|
| 1.0.0 | – |
使用例
<?php
global $cdbt;
$table_name = "customer_master";
if (!$cdbt->check_table_exists($table_name)) {
$db_engine = "InnoDB";
$db_charset = $cdbt->options['charset'];
$table_comment = "Customer Master";
$create_table_sql = "CREATE TABLE $table_name (
`customer_name` varchar(255) NOT NULL COMMENT 'Costomer Name',
`zipcode` mediumint(7) unsigned zerofill DEFAULT NULL COMMENT 'Zipcode',
`address` text COMMENT 'Address',
`tel_number` varchar(12) DEFAULT NULL COMMENT 'Telephone Number',
`url` text COMMENT 'Web site'
)";
list($status, $fixed_sql) = $cdbt->validate_create_sql($table_name, $create_table_sql);
if ($status) {
$table_data = [ "sql" => sprintf($fixed_sql, $db_engine, $db_charset, $table_comment) ];
list($result, $message) = $cdbt->create_table($table_data);
echo $message;
}
}
-
現在のところ、返り値となるSQL文はデータベースオプション部が未完となり、そのまま
create_table()メソッドにSQLを与えてもエラーになります。このメソッドを使ってテーブルを作成する場合は使用例を参照してください。 ↩