mysqli は、手続き型もあり、クラスとして利用はできますが、立ち位置としては中間的な存在でした。しかし、PDO では、多くのデータベースに対して同じ処理を実現する(インターフェイス)為に作成されたものですから、本来の『オブジェクト指向型』として利用するといいと思います。 コンストラクタの実行で、PDO は、指定されたデータベースへの接続に失敗した場合、 PDOException を投げます。( ここでは、Exception として一般的に使用しています ) closeCursor メソッドは、カーソルを閉じてステートメントを再実行できるようにするもので、多くの処理を実行する時に必要になって来るものです。 また、接続を閉じる処理はメソッドとして存在しておらず、インスタンスに NULL をセットするようマニュアルで明示されています接続を閉じるには、他から 参照されていないことを保障することでオブジェクトを破棄する 必要があります。それには、オブジェクトを保持している変数に対して NULL を代入します▼ この接続でのキャラクタセットの情報
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" ); $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の最新記事】
- 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 : MySQL 改良版拡張モジュール mysqli クラスでの接続とデータの取得(SELECT)
- PHP + MySQL : PHP 5.5.0 で非推奨の MySQL 関数での接続とデータの取得(SELECT)