×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: Jing Tai Piao
Added: Oct 23, 2012 5:37 AM
Views: 53
Tags: no tags
to use it:
MySQLDb::connect ( $_host, $_user, $_pass, $_dbname );

$result = MySQLDb::execute_sql ( $strSQL );

$arrResult = MySQLDb::fetch_result_assoc_array ( $result );
  1. abstract class MySQLDb {
  2.  
  3.         private static $db_link = false;
  4.         private static $db_connected = false;
  5.         public static $db_error = array ();
  6.         public static $result = null;
  7.  
  8.         public function __construct($_hostname, $_username, $_password, $_dbname = '') {
  9.                 self::connect ( $_hostname, $_username, $_password, $_dbname = '' );
  10.         }
  11.  
  12.         public function __destruct() {
  13.                 self::disconnect ();
  14.         }
  15.  
  16.         public static function connect($_hostname, $_username, $_password, $_dbname) {
  17.                 if (! self::$db_connected) {
  18.                         self::$db_link = mysql_connect ( $_hostname, $_username, $_password );
  19.                         if (! self::$db_link)
  20.                                 throw new Exception ( 'Database connection error' );
  21.  
  22.                         if (! mysql_select_db ( $_dbname, self::$db_link ))
  23.                                 throw new Exception ( 'Database selection error ' );
  24.                         /*if (! mysql_query ( "SET NAMES 'utf8'", self::$db_link ))
  25.                                 throw new Exception ( 'Impossible to use utf8 to communicate with the database :-(' );*/
  26.                         try {
  27.                                 self::$db_connected = true;
  28.                                 return true;
  29.                         } catch ( Exception $e ) {
  30.                                 self::$db_error = $e->getMessage ();
  31.                                 return array ("error" => self::$db_error );
  32.                         }
  33.                 } else {
  34.                     if (! mysql_select_db ( $_dbname, self::$db_link ))
  35.                                 throw new Exception ( 'Database selection error ' );
  36.                 }
  37.         }
  38.  
  39.         public static function disconnect() {
  40.                 if (self::$db_connected)
  41.                         $result = @mysql_close ( self::$db_link );
  42.  
  43.         }
  44.  
  45.         public static function select_db($_db) {
  46.                 if (self::$db_connected)
  47.                         return mysql_select_db ( $_db, self::$db_link );
  48.  
  49.         }
  50.  
  51.         public static function execute_sql($_sql) {
  52.  
  53.                 try {
  54.                     if (self::$db_connected) {
  55.                         self::$result = mysql_query ( $_sql, self::$db_link );
  56.  
  57.                         if (! self::$result)
  58.                             throw new Exception ( 'SQL error - '.  mysql_error() ." : ".$_sql );
  59.                     }
  60.                     else
  61.                         throw new Exception ( "Database connection error" );
  62.  
  63.                         return self::$result;
  64.                 } catch ( Exception $e ) {
  65.                         self::$db_error = $e->getMessage ();
  66.                         return false;
  67.                 }
  68.         }
  69.  
  70.         public static function get_insert_id() {
  71.                 return mysql_insert_id ( self::$db_link );
  72.         }
  73.  
  74.         public static function fetch_result_array(&$_result) {
  75.                 return @mysql_fetch_array ( $_result );
  76.         }
  77.  
  78.         public static function fetch_result_assoc_array(&$_result) {
  79.                 return @mysql_fetch_assoc ( $_result );
  80.         }
  81.  
  82.         public static function transaction() {
  83.                 return self::execute_sql ( "START TRANSACTION" );
  84.         }
  85.  
  86.         public static function roll_back() {
  87.                 return self::execute_sql ( "ROLLBACK" );
  88.         }
  89.  
  90.         public static function commit() {
  91.                 return self::execute_sql ( "COMMIT" );
  92.         }
  93.  
  94.         public static function num_rows($result = NULL) {
  95.                 if ($result != NULL)
  96.                         return mysql_num_rows ( $result );
  97.                 else
  98.                         return 0;
  99.         }
  100. }
  101.