[PHP] MySQLクラス
Posted by yama3 2008年 11月 11日. プログラミング 
PHPからMySQLへの接続周りのクラスファイルです。
自分は、普段PHPからMySQLへアクセスするときは、毎回Fetch Assocしたり・・・などという面倒なことをやりたくないのでいつもこのクラスファイルを使っています。
このクラスファイルのメリット
- MySQLへの接続が容易になる(と思う)。
- クエリ実行時のSQLサニタイジングを自動で実行(MAGIC QUOTES GPCをチェックし、不要ならば実行しない)
- クエリ結果は既にFetch Assocに通されており、配列として受け取れる。
あとは、トランザクション処理なんかもできるようにしたらもっと便利になるのかも。
Mysql.php
- <?php
- /* ********************************************
- * MySQL への接続関連のクラスファイル
- * ******************************************** */
- class MysqlDB {
- var $DBuser;
- var $DBpass;
- var $DBname;
- var $DBhost;
- var $DB;
- var $charset;
- // デフォルトコンストラクタ
- function MysqlDB( $charset = “utf-8″ ) {
- $this->charset = $charset;
- }
- // データベース情報をセットする。
- function Set( $user, $pass, $name, $host=”localhost” ) {
- $this->DBuser = $user;
- $this->DBpass = $pass;
- $this->DBhost = $host;
- $this->DBname = $name;
- }
- // MySQL データベースに接続する
- function Connect() {
- $this->DB = mysql_connect( $this->DBhost,
- $this->DBuser, $this->DBpass );
- if( $this->DB == false ) {
- echo “Connect Error\n”;
- } else {
- mysql_query( “set ames ujis” );
- mysql_select_db( $this->DBname );
- echo “Connect OK\n”;
- }
- }
- // MySQL データベースから切断する
- function Disconnect() {
- mysql_close( $this->DB );
- }
- // MySQL クエリを実行する
- function Query( $q ) {
- if( $this->DB == false ) {
- echo “Connect Error\n”;
- }
- // MAGIC QUOTES GPCがオフであれば、ここでSQLクエリをサニタイズ
- if( !get_magic_quotes_gpc() ) {
- $q = addslashes( $q );
- }
- $res = mysql_query( $q );
- // クエリ結果をfetch assocしてリターン
- $k=0;
- while( $data[] = mysql_fetch_assoc( $res ) ) {
- foreach( $data[$k] as $key => $value ) {
- $d[$k][$key] = mb_convert_encoding( $value, $this->charset, “auto” );
- }
- $k++;
- }
- return $d;
- }
- }
- /*
- $db = new MysqlDB();
- // $db->Set( “DBuser”, “DBpass”, “DBname”, “DBhost” ); // DBホストを省略しない表記
- $db->Set( “DBuser”, “DBpass”, “DBname” );
- $db->Connect();
- $db->Disconnect();
- */
- ?>
関連記事
[PR]
トラックバック
http://yamablo.com/2008/11/11-183734.php/trackback

