[PHP] MySQLクラス

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

PHPからMySQLへの接続周りのクラスファイルです。

自分は、普段PHPからMySQLへアクセスするときは、毎回Fetch Assocしたり・・・などという面倒なことをやりたくないのでいつもこのクラスファイルを使っています。

このクラスファイルのメリット

  • MySQLへの接続が容易になる(と思う)。
  • クエリ実行時のSQLサニタイジングを自動で実行(MAGIC QUOTES GPCをチェックし、不要ならば実行しない)
  • クエリ結果は既にFetch Assocに通されており、配列として受け取れる。

あとは、トランザクション処理なんかもできるようにしたらもっと便利になるのかも。

Mysql.php

  1. <?php
  2. /* ********************************************
  3. * MySQL への接続関連のクラスファイル
  4. * ******************************************** */
  5.     class MysqlDB {
  6.         var     $DBuser;
  7.         var     $DBpass;
  8.         var     $DBname;
  9.         var     $DBhost;
  10.         var     $DB;
  11.         var     $charset;
  12.         // デフォルトコンストラクタ
  13.         function MysqlDB( $charset = “utf-8″ ) {
  14.             $this->charset = $charset;
  15.         }
  16.         // データベース情報をセットする。
  17.         function Set( $user, $pass, $name, $host=”localhost” ) {
  18.             $this->DBuser = $user;
  19.             $this->DBpass = $pass;
  20.             $this->DBhost = $host;
  21.             $this->DBname = $name;
  22.         }
  23.         // MySQL データベースに接続する
  24.         function Connect() {
  25.             $this->DB = mysql_connect( $this->DBhost,
  26.                                     $this->DBuser, $this->DBpass );
  27.             if( $this->DB == false ) {
  28.                 echo “Connect Error\n”;
  29.             } else {
  30.                 mysql_query( “set ames ujis” );
  31.                 mysql_select_db( $this->DBname );
  32.                 echo “Connect OK\n”;
  33.             }
  34.         }
  35.         // MySQL データベースから切断する
  36.         function Disconnect() {
  37.             mysql_close( $this->DB );
  38.         }
  39.         // MySQL クエリを実行する
  40.         function Query( $q ) {
  41.             if( $this->DB == false ) {
  42.                 echo “Connect Error\n”;
  43.             }
  44.             // MAGIC QUOTES GPCがオフであれば、ここでSQLクエリをサニタイズ
  45.             if( !get_magic_quotes_gpc() ) {
  46.                 $q = addslashes( $q );
  47.             }
  48.             $res = mysql_query( $q );
  49.             // クエリ結果をfetch assocしてリターン
  50.             $k=0;
  51.             while( $data[] = mysql_fetch_assoc( $res ) ) {
  52.                 foreach( $data[$k] as $key => $value ) {
  53.                     $d[$k][$key] = mb_convert_encoding( $value, $this->charset, “auto” );
  54.                 }
  55.                 $k++;
  56.             }
  57.             return $d;
  58.         }
  59.     }
  60.     /*
  61.     $db = new MysqlDB();
  62. //    $db->Set( “DBuser”, “DBpass”, “DBname”, “DBhost” ); // DBホストを省略しない表記
  63.     $db->Set( “DBuser”, “DBpass”, “DBname” );
  64.     $db->Connect();
  65.     $db->Disconnect();
  66.     */
  67. ?>

関連記事

人気ブログランキングへ

[PR]

トラックバック

http://yamablo.com/2008/11/11-183734.php/trackback

コメント


Get Adobe Flash playerPlugin by wpburn.com wordpress themes