データベース/MySQL、PostgreSQL、SQLite

MySQLの表一覧を出力するプログラム(2ページ目)

MyODBCを使用してMySQLで定義されている表一覧を出力し、表の構造と内容を表示するプログラムを紹介します。

執筆者:堀江 美彦

2. MySQLで定義されている表一覧を出力するプログラム(myodbc1-1.php)を作成

下記の内容をテキストエディタにコピーし、ファイル名を「myodbc1-1.php」として
「C:\xampp\htdocs\test」内に保存します。

*注意 ---「myodbc1-1.php」ファイルの文字コードは「SJIS」を指定して保存してください。
PHPエディタサクラエディタなど文字コードを指定できるエディタを使うと便利です。
<?php

//odbc_connect関数によりDBへ接続開始する
//システムDSN名,ユーザー名,パスワードの順に指定する
$dbHandle = odbc_connect("myodbc351s","root","karipass");

//DBの接続に失敗した場合はエラー表示をおこない処理を中断する
if ($dbHandle == False) {
	print ("can not connect db\n");	
	exit;
}

//GETで渡されたtable名を$tableにセットする
$table = $HTTP_GET_VARS["table"];

//SQL文を指定
$sql = "select * from ". $table;

//odbc_exec関数によりSQL文を実行する
$rs = odbc_exec($dbHandle, $sql);

//odbc_num_fields関数により列数を取得する
$num = odbc_num_fields($rs);

//HTML文を出力 テーブルの開始を指定
print("<table border=1><tr");

//HTML文を出力 テーブルの行開始
print("<tr><td>num</td><td>field_name</td><td>field_len</td><td>field_precision</td><td>field_scale</td><td>field_type</td>");

//test表の列数と同じ回数を繰り返す
for ($i=1;$i<=$num;$i++){
	print("<tr>");
	print("<td>" . $i . "</td>");
//odbc_field_name関数により列名を取得し表示する
	print("<td>" . odbc_field_name($rs, $i) . "</td>");
//odbc_field_len関数により列長を取得し表示する
	print("<td>" . odbc_field_len($rs, $i) . "</td>");
//odbc_field_precision関数により列の精度を取得し表示する
	print("<td>" . odbc_field_precision($rs, $i) . "</td>");
//odbc_field_scale関数により列の浮動小数点の精度を取得し表示する
	print("<td>" . odbc_field_scale($rs, $i) . "</td>");
//odbc_field_type関数により列のデータ型を取得し表示する
	print("<td>" . odbc_field_type($rs, $i) . "</td>");
print("</tr>");
}

//HTML文を出力 テーブルの終了を指定
print("</table>");

//odbc_free_result関数により結果保持用のメモリを開放する
odbc_free_result($rs);

//odbc_close関数によりDBへの接続を切断
odbc_close($dbHandle);

//HTML文を出力 javascriptを使用して直前のページに戻るリンク
print ("<br><a href=myodbc1.php>戻る</a><br>");

?>
続いて、次ページで「myodbc1-2.php」を作成します。
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます