SQLの窓

2014年04月12日


PHP + MySQL : PHP 5.5.0 で非推奨の MySQL 関数での接続とデータの取得(SELECT)

PHP のマニュアルでは、 MySQLi や PDO_MySQL を使うように推奨していますが、当分このコードも扱えないといけないので、一番扱いやすい内容でまとめました。

フィールドの数を mysql_num_fields で取得して、mysql_fetch_array で 連想配列、添字配列として結果の行を取得しています。

file_put_contents の追加モードでログを出力しています( utf-8n で出力されます )

MySQL のキャラクタセットは UTF-8 です。PHP のページも UTF-8 なので、特別な考慮なしに正しく表示されます。

▼ この接続でのキャラクタセットの情報
character_set_clientutf8
character_set_connectionutf8
character_set_databaseutf8
character_set_filesystembinary
character_set_resultsutf8
character_set_serverutf8
character_set_systemutf8
<?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の最新記事】
posted by lightbox at 2014-04-12 23:57 | MySQL | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり