質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

4回答

2600閲覧

php MYSQLでDBのテーブルのコメント取得方法が分かりません

kaito2414

総合スコア11

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/04/28 07:36

phpでDBのテーブルのコメント取得方法が分かりません。
使用しているのはMYSQLです
以下でカラム名、データ型の取得はできたのですがコメントが取得できないです。
何かいい方法はありますか?

php

1// テーブルからカラム情報取得 2 $column = "show columns from ".$table_name; 3 $column_data = $dbh->query($column); 4 foreach($column_data as $value){ 5 $column_name[] = $value[0]; 6 $column_type[] = $value[1]; 7 }

試したこと

php

1$column = 'select * from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = '.$table_name; 2$column = 'SELECT COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = '.$table_name;

試したことで出てくるエラー文

php

1 Invalid argument supplied for foreach()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

sql

1show columns from table_name;

sql

1show full columns from table_name;

ちなみに、質問文のコードであたいが取れないのはfetchの処理をしていない問題もあります。

投稿2020/04/28 07:41

編集2020/04/28 07:52
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://qiita.com/AkihikoIkeda/items/a02ead94bbbc94b64b05

らしいですね。(すみませんこちらに書いてしましました)

SQL

1CREATE TABLE tableName ( 2 columnName1 int comment '1つ目のカラム', 3 columnName2 text comment '2つ目のカラム' 4) 5default charset=utf8 6comment='テーブルに対するコメント'; 7コード

投稿2020/04/28 08:16

編集2020/04/28 08:17
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/28 08:30

CREATE じゃなくて この場合 ALTERですね。(テーブルが存在していると思われます)
kaito2414

2020/04/28 08:36 編集

サブテーブルを作成していますので、 今回の場合は $column_comment = $value[8] ”CREATE TABLE tableName ( columnName1 int comment ". $column_comment ", columnName2 text comment ".$column_comment. " )” でよろしいのでしょうか?
guest

0

ベストアンサー

これが参考になりそうです。

下記URL https://qiita.com/snaka/items/28c636214099f3b99c18

show full columns from テーブル名;

PHP

1// テーブルからカラム情報取得 2//$column_XXXの部分は省略させていただきます。 3 4 $column = "show full columns from ".$table_name; 5 $column_data = $dbh->query($column); 6 foreach($column_data as $value){ 7 $column_XXX = $value[0];//Field 8 $column_XXX = $value[1];//Type 9 $column_XXX = $value[2];//Collation 10 $column_XXX = $value[3];//Null 11 $column_XXX = $value[4];//Key 12 $column_XXX = $value[5];//Default 13 $column_XXX = $value[6];//Extra 14 $column_XXX = $value[7];//Privileges 15 $column_XXX = $value[8];//★★ここがcomment 16 }

投稿2020/04/28 07:48

編集2020/04/28 07:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/28 07:52

fetch してない
kaito2414

2020/04/28 08:01

なるほど、fullが抜けていたのですね。 ありがとうございます。
kaito2414

2020/04/28 08:07

すみません、コメント付与時のインサート文はどのように書けばよろしいですか?
kaito2414

2020/04/28 08:11 編集

ごめんなさい、CREATE TABLEでした $column_name[$s].' '.$column_type[$s].' COMMENTS '.$column_comment[$s]; このように書きましたが無理でした
m.ts10806

2020/04/28 08:17

だから、なぜいきなりPHPから実行するのかと。
kaito2414

2020/04/28 08:31

phpMYadmin内で実行してからってことですか
m.ts10806

2020/04/28 08:39

phpMyAdminじゃなくてもいいです。DBに対して直接実行できればどこからでも。 SQLはPHPで実行されるわけではなくPHPはあくまでSQLを届けるだけなので。 直に実行して想定通りに動いて初めてPHP側に導入します。
guest

0

実際にそのSQL 直に実行してみれば分かるのではないでしょうか。
直に実行して想定の結果が得られていないSQLは当然、アプリケーションから使えません。

投稿2020/04/28 07:38

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問