PHP のマニュアルでは、 MySQLi や PDO_MySQL を使うように推奨していますが、当分このコードも扱えないといけないので、一番扱いやすい内容でまとめました。 フィールドの数を mysql_num_fields で取得して、mysql_fetch_array で 連想配列、添字配列として結果の行を取得しています。 file_put_contents の追加モードでログを出力しています( utf-8n で出力されます ) MySQL のキャラクタセットは UTF-8 です。PHP のページも UTF-8 なので、特別な考慮なしに正しく表示されます。 ▼ この接続でのキャラクタセットの情報
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | utf8 |
character_set_filesystem | binary |
character_set_results | utf8 |
character_set_server | utf8 |
character_set_system | utf8 |
<?php header( "Content-Type: text/html; Charset=utf-8" ); header( "pragma: no-cache" ); header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); header( "Cache-control: no-cache" ); $server = 'localhost'; $db_name = 'lightbox'; $user = 'root'; $password = 'パスワード'; // 接続 $connect = @mysql_connect( $server, $user, $password ); if ( !$connect ) { die("接続エラーです : " . mysql_error() ); } // DB選択 if ( !mysql_select_db( $db_name, $connect ) ) { die("DB選択に誤りがあります : " . mysql_error() ); } // クエリ $result = mysql_query("select * from 社員マスタ", $connect); if ( !$result ) { die('クエリーに誤りがあります : ' . mysql_error()); } // 列数 $field_count = mysql_num_fields( $result ); $count = 0; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> * { font-family: "メイリオ", Meiryo, "MS Pゴシック", sans-serif; font-size: 12px; } table { border-collapse: collapse; border-style: solid; border-color: #c0c0c0; border-width: 1px; background-color: #FFFFFF; } td { padding: 5px; border-style: solid; border-color: #c0c0c0; border-width: 1px; } </style> </head> <body> <?php $log_file = "rowdata_001.log"; file_put_contents( $log_file,"" ); print "<table>\n"; while ($row = mysql_fetch_array($result)) { print "<tr>\n"; print "\t<td>" . ($count + 1) . "</td>\n"; for( $i = 0; $i < $field_count; $i++ ) { print "\t<td>{$row[$i]}</td>\n"; } print "</tr>\n"; $count++; file_put_contents( $log_file, print_r($row,true), FILE_APPEND ); } print "</table>"; // メモリを開放ですが、通常は必要ありません mysql_free_result($result); // 接続解除 mysql_close($connect); ?> <br> 出力件数 : <?= $count ?>
"select * from 社員マスタ" とありますが、厳密には "select * from `社員マスタ`" のように使う事ができます( これは、Oracle の "社員マスタ" にあたり、Microsoft では [社員マスタ] にあたります。 ▼ ログ( rowdata_001.log / utf8n )
Array ( [0] => 0001 [社員コード] => 0001 [1] => 浦岡 友也 [氏名] => 浦岡 友也 [2] => ウラオカ トモヤ [フリガナ] => ウラオカ トモヤ [3] => 0003 [所属] => 0003 [4] => 0 [性別] => 0 [5] => 2014-04-11 00:00:00 [作成日] => 2014-04-11 00:00:00 [6] => 2014-06-27 00:00:00 [更新日] => 2014-06-27 00:00:00 [7] => 270000 [給与] => 270000 [8] => 9000 [手当] => 9000 [9] => [管理者] => [10] => [生年月日] => )
関連する記事
|
【MySQLの最新記事】
- MySQL に PIPES_AS_CONCAT を設定して、CSV を出力する SQL
- MySQL : DB のデータを簡単に沢山作る方法は inner join
- MySQL で、Group by して合算された行内で最新データの明細を再び取り出す SQL
- MySQL のコマンドラインの操作
- Windows 環境の MySQL から日本語名のテーブルを コマンドプロンプトでエクスポート(mysqldump.exe)する
- MySQLの日本語オンラインマニュアル、5.6 とその中のいくつかの重要なリンク
- MySQL のコマンドプロンプトからの処理用バッチファイル
- MySQL で、主キーの作り変えのプロセス / serial では、自動的に インデックスが作成されます
- MySQL 5.6 (Generally Available (GA) Releases) インストール
- MySQL : 引数の無い LAST_INSERT_ID() と 引数のある LAST_INSERT_ID( n ) の使用方法
- MySQL における AUTO_INCREMENT 列の設定および詳細
- MySQL のプログラムからの経過時間の表現方法( CAST, STR_TO_DATE, GET_FORMAT, DATE_FORMAT, TIMEDIFF )
- MySQL で出退勤の列を datetime 型で持った場合、列を使用して DATEDIFF と TIMEDIFF で直接計算
- MySQL を UTF-8 環境で作成して、mysqldump.exe でバックアップするバッチファイルのサンプル
- MySQL 5.6 : テストデータ自動作成スクリプト
- PHP + MySQL : Windows の COM を使った ODBC 経由での接続とデータの取得(SELECT)
- VBScript + MySQL : ADO( ODBC ) による接続とデータの取得(SELECT)
- PHP + MySQL : Windows における ODBC 経由での接続とデータの取得(SELECT)
- PHP + MySQL : PDO_MySQL での接続とデータの取得(SELECT)
- PHP + MySQL : MySQL 改良版拡張モジュール mysqli クラスでの接続とデータの取得(SELECT)