SQLの窓

2014年04月13日


PHP + MySQL : PDO_MySQL での接続とデータの取得(SELECT)

mysqli は、手続き型もあり、クラスとして利用はできますが、立ち位置としては中間的な存在でした。しかし、PDO では、多くのデータベースに対して同じ処理を実現する(インターフェイス)為に作成されたものですから、本来の『オブジェクト指向型』として利用するといいと思います。

コンストラクタの実行で、PDO は、指定されたデータベースへの接続に失敗した場合、 PDOException を投げます。( ここでは、Exception として一般的に使用しています )

closeCursor メソッドは、カーソルを閉じてステートメントを再実行できるようにするもので、多くの処理を実行する時に必要になって来るものです。

また、接続を閉じる処理はメソッドとして存在しておらず、インスタンスに NULL をセットするようマニュアルで明示されています
接続を閉じるには、他から 参照されていないことを保障することでオブジェクトを破棄する 必要があります。それには、オブジェクトを保持している変数に対して NULL を代入します
▼ この接続でのキャラクタセットの情報
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" );

$conf = array(
	"server" => "localhost",
	"db" => "lightbox",
	"user" => "root",
	"pass" => "パスワード"
);

// **********************************************************
// 接続
// **********************************************************
try {
	$connect = new PDO("mysql:host={$conf['server']};dbname={$conf['db']}",
		$conf['user'], $conf['pass'] );
}
catch ( Exception $ex ) {
	die( '{"error": "接続できませんでした: ' . $ex->getMessage() . '"}' );
}

// **********************************************************
// 結果セット
// **********************************************************
$rs = $connect->query( "select * from 社員マスタ" );
if ( $rs === false ) {
	$er = $connect->errorInfo();
	die('{ "error" : "' . $er[2] . '" }');
}

// フィールド数
$field_count = $rs->columnCount();
$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
print $connect_string;

$log_file = "rowdata_005.log";

file_put_contents( $log_file,"" );

print "<table>\n";
while ($row = $rs->fetch(PDO::FETCH_BOTH)) {
	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>";

$rs->closeCursor();
?>

<br>
出力件数 : <?= $count ?>



関連する記事

【MySQLの最新記事】
posted by lightbox at 2014-04-13 02:12 | MySQL | このブログの読者になる | 更新情報をチェックする
container 終わり

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

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