https://qiita.com/AkihikoIkeda/items/a02ead94bbbc94b64b05
上記のサイトを参考にコードを書いてみたのですが、どうしてもコメント付与ができないです。
どのように修正すればよろしいでしょうか?
既に存在しているテーブルのサブテーブルを作成しています。
try-catchは実際のコードでは書いていますが、今回は省いています。
php
1// DB接続 2 $dbh_admin = new PDO('mysql:host=127.0.0.1; dbname='.$db_name[0].';charset=utf8', $user, $pass); 3 $dbh_common = new PDO('mysql:host=127.0.0.1; dbname='.$db_name[1].';charset=utf8', $user, $pass); 4 $dbh_front = new PDO('mysql:host=127.0.0.1; dbname='.$db_name[2].';charset=utf8', $user, $pass); 5 6 $dbh[] = $dbh_admin; 7 $dbh[] = $dbh_common; 8 $dbh[] = $dbh_front; 9 $dbh_count = count($dbh); 10 11 // テーブル関連 12 for($i=0;$i<$dbh_count;$i++){ 13 $column_name = []; 14 $column_type = []; 15 $column_comment = []; 16 $co = 0; 17 18 $db_table = $dbh[$i]->query('SHOW TABLES'); 19 while($db_all_table = $db_table->fetch(PDO::FETCH_ASSOC)){ 20 21 // テーブル名取得 22 $db_table_name[$i][] = $db_all_table; 23 $table_name = $db_table_name[$i][$co]['Tables_in_'.$db_name[$i]]; 24 25 // カラム情報取得 26 $column = "show full columns from ".$table_name; 27 $column_data = $dbh[$i]->query($column); 28 foreach($column_data as $value){ 29 $column_name[$co][] = $value[0]; 30 $column_type[$co][] = $value[1]; 31 $column_comment[$co][] = $value[8]; 32 } 33 34 if($i===1){ 35 $count_column_name = count($column_name[$co]); 36 $import = 'CREATE TABLE '.$table_name.'_sub ('; 37 for($s=0;$s<$count_column_name;$s++){ 38 if($s===0 && $column_comment[$co][$s]){ 39 $import = $import.$column_name[$co][$s].' '.$column_type[$co][$s].' AUTO_INCREMENT PRIMARY KEY comment'.$column_comment[$co][$s]; 40 }else if($s===0 && !$column_comment[$co][$s]){ 41 $import = $import.$column_name[$co][$s].' '.$column_type[$co][$s].' AUTO_INCREMENT PRIMARY KEY'; 42 }else if($column_comment[$co][$s]){ 43 $import = $import.','.$column_name[$co][$s].' '.$column_type[$co][$s].' comment '.$column_comment[$co][$s]; 44 }else{ 45 $import = $import.','.$column_name[$co][$s].' '.$column_type[$co][$s]; 46 } 47 } 48 $import = $import.') engine=innodb default charset=utf8'; 49 $table_create = $dbh[$i]->query($import); 50 } 51 $co++; 52 } 53 }
回答3件
あなたの回答
tips
プレビュー