Mysql_Db.object
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:4k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. class Mysql_Db extends BaseObject {
  3.    var $db;
  4.    var $debug;
  5.    var $db_connection_handle;
  6.    var $connection_init;
  7.    Function Mysql_Db( $db_config = '' ) {
  8.       $this->BaseObject( 'Mysql_Db' );
  9.       if ( is_object( $db_config ) ) {
  10.          $this->db = $db_config;
  11.       } else {
  12.          $this->db = new DbDefaults();
  13.       }
  14.       $this->debug                  = new Debug();
  15.       $this->debug->prefix          = 'Mysql_Db::MAIN';
  16.       $this->debug->Off();
  17.       $this->db_connection_handle   = false;
  18.       $this->connection_init        = false;
  19.       } /* END Mysql_Db() */
  20.    Function BuildConnectString() {
  21.       if ( $this->db->connect_string == '' ) {
  22.          $this->db->Build_MysqlConnectString();
  23.       }
  24.    } /* END BuildConnectionString */
  25.    Function CreateConnection() {
  26.       $this->BuildConnectString();
  27.       if (
  28.          $this->db->persistent_mode == true &&
  29.          $this->connection_init == false ) {
  30.          $open_connection = 0;
  31.          /* Open the connection to the database */
  32.          $open_connection =
  33.                (
  34.                $this->db_connection_handle = @mysql_pconnect( 
  35.                   $this->db->connect_string, 
  36.                   $this->db->user_name, 
  37.                   $this->db->password )
  38.                );
  39.          if ( !( $open_connection) ) {
  40.             $this->debug->Message( 
  41.             'Database Invalid Username / Password Combo : ' . "n" .
  42.             'Db Connect string : ' . $this->db->connect_string . "n" .
  43.             'Db Username       : ' . $this->db->user_name . "n" .
  44.             'Db Password       : ' . $this->db->password  . "n" 
  45.             );
  46.             return 
  47.                   array( 
  48.                      false, 
  49.                      'Invalid username / password combonation.'
  50.             );
  51.             }
  52.          /* Switch to the database for that connection */
  53.          if ( ! $this->SelectDb() ) {
  54.             $this->debug->Message(
  55.                'Database select failed, check for database existance ' .
  56.                   'or misconfiguration.' . "n" .
  57.                'Db Database : ' . $this->db->db_name
  58.             );
  59.             return array( 
  60.                   false, 
  61.                   'Select database : ' . 
  62.                      $this->db->db_name . 
  63.                   ' failed, check for database existance, ' .
  64.                      'or misconfiguration'
  65.             );
  66.             }
  67.          $this->connection_init = true;
  68.          return array( true, $this->db_connection_handle );
  69.          }
  70.       if (
  71.          $this->db->persistent_mode == true &&
  72.          $this->connection_init == true ) {
  73.          return array( $this->db_connection_handle );
  74.          }
  75.       } /* END CreateConnection() */
  76.    Function Open() { return $this->CreateConnection(); }
  77.    Function DestroyConnection() {
  78.       if ( $this->connection_init == true ) {
  79.          if ( @mysql_close( $this->db_connection_handle ) ) {
  80.             return array( true );
  81.          } else {
  82.             return array( false );
  83.          }
  84.       }
  85.    }
  86.    Function Close() { return $this->DestroyConnection(); }
  87.    Function PrepareSql( $sql_stmt ) {
  88.       $temp = new Mysql_DbDriver();
  89.       /* This is here to prevent the persistent connection
  90.       from forgetting about which database it just used */
  91.       $this->SelectDb();
  92.       $temp->db_connection_handle = $this->db_connection_handle;
  93.       $temp->sql_statement        = $sql_stmt;
  94.       $temp->debug->debug         = $this->debug->debug;
  95.       return $temp;
  96.    }
  97.    Function SelectDb() {
  98.         $select_db =
  99.                (
  100.                $db_test = @mysql_select_db(
  101.                      $this->db->db_name,
  102.                      $this->db_connection_handle )
  103.                );
  104.          return $select_db;
  105.    }
  106.    Function Prepare( $sql_stmt ) { 
  107.       return $this->PrepareSql( $sql_stmt ); 
  108.    }
  109.    Function ListAllTables() {
  110.       if ( 
  111.          $result = @mysql_listtables( 
  112.                            $this->db->db_name,
  113.                            $this->db_connection_handle
  114.          ) ) {
  115.          $my_arr = Array();
  116.          $i = 0;
  117.          while( $i < @mysql_num_rows( $result ) ) {
  118.           $my_arr[ $i ] = @mysql_tablename( $result, $i );
  119.           $i++;
  120.          }
  121.          return Array( true, $my_arr );
  122.       } else {
  123.          return Array( false, @mysql_error() );
  124.       }
  125.    }
  126. } /* END Mysql_Db class */
  127. ?>