Home >Backend Development >PHP Tutorial >The fifth day of php practice_PHP tutorial

The fifth day of php practice_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:10:52786browse

PHP monomorphic design mode, my understanding is to create a static variable in the class so that there is only one, and use a method to return the object. This method checks whether the object exists before creating it. Thus achieving a single object.

Set __construct() to private so that new cannot be used. Self is the meaning of this class. "::" calls static method


[php] /**
    * 
   */
class myclass
{
         static private $db_class;
          static public function getClass()
                                                                  If (is_null(self::$db_class)) {
                    self::$db_class=new myclass();
                       echo "Create object";
              }else{
echo "Return to the original object";
                    return self::$db_class;
                                                                                                                                               } 
        private function __construct()
                                                                  echo "11111111111111";
         } 

Public function __destruct(){
echo "
aaaaaaaaaaaa";
         } 
Public function show(){
echo "bbbbbbbbbbbbbbb";
         } 
}  
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a->show();


/*//If you use new directly, an error will be reported!!!
new myclass();
new myclass();

new myclass();
new myclass();

new myclass();
new myclass();
new myclass();
new myclass();*/
?>

/**

 *

 */
class myclass
{
static private $db_class;
static public function getClass()
{
if (is_null(self::$db_class)) {
Self::$db_class=new myclass();
echo "Create object";
}else{
echo "Return to the original object";
Return self::$db_class;
}
}
private function __construct()
{
echo "11111111111111";
}

public function __destruct(){
echo "
aaaaaaaaaaaa";
}
public function show(){
echo "bbbbbbbbbbbbbbb";
}
}
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a->show();


/*//If you use new directly, an error will be reported!!!
new myclass();
new myclass();

new myclass();
new myclass();

new myclass();
new myclass();
new myclass();
new myclass();*/
?>

This is a small example. The monomorphic mysql class is given below


[php] // +-------------------------------------------------- -----------------------
// |MySQL operation class
// +-------------------------------------------------- -----------------------
// |@微梁QQ:496928838
// +-------------------------------------------------- -----------------------
class MySQL{
       
Private $db_mysql_hostname;
Private $db_mysql_username;
Private $db_mysql_password;
Private $db_mysql_database;
Private $db_mysql_port;
Private $db_mysql_charset;
       
Private $query_list = array();
       
//Number of queries
Public $query_count = 0;
//Query start time
Public $query_start_time;
       
//Current query ID
protected $queryID;
//Current connection
protected $conn;
// Number of transaction instructions
protected $transTimes = 0;
// Return or affect the number of records
protected $numRows = 0;
// Error message
protected $error = '';
       
//Static instance
static private $db_class;
//Get this category
static public function getClass()
{
If (is_null(self::$db_class)) {
               self::$db_class=new MySQL();
         } 
         return self::$db_class;
}  

//If it is defined as a private method, it will be new. Use getClass
Private function __construct()
{
                                                                 }  


Public function connect($hostname_or_conf,$username,$password,$database,$port = '3306',$char = 'utf8'){
If(is_array($hostname_or_conf)){
                $this->db_mysql_hostname = $hostname_or_conf['hostname'];
                $this->db_mysql_username = $hostname_or_conf['username'];
                $this->db_mysql_password = $hostname_or_conf['password'];
                 $this->db_mysql_database = $hostname_or_conf['database'];
                $this->db_mysql_port = isset($hostname_or_conf['port'])?$hostname_or_conf['port']:'3306';
                 $this->db_mysql_charset = isset($hostname_or_conf['charset'])?$hostname_or_conf['charset']:'utf8';
           }elseif(!empty($hostname_or_conf)||!empty($username)||!empty($password)||!empty($database))
                                                                                    $this->db_mysql_hostname = $hostname_or_conf;
                   $this->db_mysql_username = $username;
                     $this->db_mysql_password = $password;
                  $this->db_mysql_database = $database;
                  $this->db_mysql_port = $port;
             $this->db_mysql_charset = $char; 
              
        }else{ 
            die('configuration error.'); 
        } 
         
        $server = $this->db_mysql_hostname.':'.$this->db_mysql_port; 
        $this->conn = mysql_connect($server,$this->db_mysql_username,$this->db_mysql_password,true) or die('Connect MySQL DB error!'); 
        mysql_select_db($this->db_mysql_database,$this->conn) or die('select db error!'); 
        mysql_query("set names " . $this->db_mysql_charset, $this->conn); 
 
    } 
 
 
 
 
    /**
+------------------------------------------------- ----------
* Set data object value
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
*table,where,order,limit,data,field,join,group,having
+------------------------------------------------- ----------
​​*/ 
    public function table($table){ 
        $this->query_list['table'] = $table; 
        return $this; 
    } 
     
    public function where($where){ 
        $this->query_list['where'] = $where; 
        return $this; 
    } 
     
    public function order($order){ 
        $this->query_list['order'] = $order; 
        return $this; 
    } 
     
    public function limit($offset,$length=null){ 
        if (is_null($length)) { 
            $this->query_list['limit']='limit '.$offset; 
            return $this; 
        }else { 
            if(!isset($length)){ 
                $length = $offset; 
                $offset = 0; 
            } 
                $this->query_list['limit'] = 'limit '.$offset.','.$length; 
                return $this; 
        } 
 
    } 
     
    public function data($data){ 
        //读取数据表字段,然后处理表单数据  
        $dataList = $this->getFields($this->query_list['table']); 
        $arr=array(); 
        foreach ($dataList as $key=>$value) { 
            if (array_key_exists ($key,$data) ) { 
                $arr[$key]=$data[$key]; 
            } 
             
        } 
        //var_dump($arr);  
        /*
        if(is_object($data)){
            $data   =   get_object_vars($data);
        }elseif (is_string($data)){
            parse_str($data,$data);
        }elseif(!is_array($data)){
            //Log:DATA_TYPE_INVALID
        }
        */ 
        $this->query_list['data'] = $arr; 
        return $this; 
    } 
    public function field($fields){ 
        $this->query_list['fields'] = $fields; 
        return $this; 
    } 
    public function join($join){ 
        $this->query_list['join'] = $join; 
        return $this; 
    } 
    public function group($group){ 
        $this->query_list['group'] = $group; 
        return $this; 
    } 
    public function having($having){ 
        $this->query_list['having'] = $having; 
        return $this; 
    } 
    /**
+------------------------------------------------- ----------
* Query
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
    public function select(){ 
        $select_sql = 'select '; 
        $fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*'; 
        $select_sql.=$fields; 
        $select_sql.= ' from `'.$this->query_list['table'].'` '; 
         
        isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):''; 
        isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):''; 
        isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):''; 
        isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):''; 
        isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):''; 
        isset($this->query_list['limit'])?($select_sql.=' '.$this->query_list['limit']):''; 
    //  echo '----->'.$select_sql;  
        return $this->query($select_sql); 
    } 
    /**
     +----------------------------------------------------------
     * 增加
     +----------------------------------------------------------
     * @access public
     +----------------------------------------------------------
     * @param 
     +----------------------------------------------------------
     */ 
    public function add(){ 
        $add_sql = 'insert into `'.$this->query_list['table'].'` ('; 
         
        $data = $this->query_list['data']; 
        $value = $field = ''; 
        foreach($data as $k=>$v){ 
            $field .= '`'.$k.'`,'; 
            if(is_numeric($v)) 
                $value .= $v.','; 
            else 
                $value .= '''.$v.'','; 
        } 
        $add_sql .= rtrim($field,',').') values ('.rtrim($value,',').')'; 
 
    //  echo 'add_sql'.$add_sql;  
        return $this->execute($add_sql); 
    } 
    /**
+------------------------------------------------- ----------
* Delete
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
    public function delete(){ 
        $del_sql = 'delete from `'.$this->query_list['table'].'` where '.$this->query_list['where']; 
         
        if(isset($this->query_list['order'])) 
            $del_sql .= 'order by '.$this->query_list['order']; 
        if(isset($this->query_list['limit'])) 
            $del_sql .= ' '.$this->query_list['limit']; 
             
        return $this->execute($del_sql); 
         
    } 
    /**
+------------------------------------------------- ----------
* Update
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
    public function update(){ 
        $update_sql = 'update `'.$this->query_list['table'].'` set '; 
        $data = $this->query_list['data']; 
         
        foreach($data as $k=>$v){ 
            if(is_numeric($v)) 
                $update_sql .= '`'.$k.'` ='.$v.','; 
            else 
                $update_sql .= '`'.$k.'` =''.$v.'','; 
        } 
        $update_sql = rtrim($update_sql,','); 
        if(isset($this->query_list['where'])) 
            $update_sql .= ' where '.$this->query_list['where']; 
        if(isset($this->query_list['order'])) 
            $update_sql .= ' order by '.$this->query_list['order']; 
        if(isset($this->query_list['limit'])) 
            $update_sql .= ' '.$this->query_list['limit']; 
         
        return $this->execute($update_sql); 
         
    } 
     /**
+------------------------------------------------- ----------
* Execute the query and return the data set
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param string $sql sql command
​​*/ 
    public function query($sql) { 
        if ( !$this->conn ) return false; 
        $this->queryStr = $sql; 
        //释放前次的查询结果  
        if ( $this->queryID ) {    $this->free();    } 
         
        $this->query_start_time = microtime(true); 
         
        $this->queryID = mysql_query($sql, $this->conn); 
        $this->query_count++; 
        if ( false === $this->queryID ) { 
            $this->error(); 
            return false; 
        } else { 
            $this->numRows = mysql_num_rows($this->queryID); 
            return $this->getAll(); 
        } 
    } 
    /**
+------------------------------------------------- ----------
* Execution statement
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param string $sql sql command
+------------------------------------------------- ----------
​​*/ 
    public function execute($sql) { 
        if ( !$this->conn ) return false; 
        $this->queryStr = $sql; 
        //释放前次的查询结果  
        if ( $this->queryID ) {    $this->free();    } 
         
        $this->query_start_time = microtime(true); 
         
        $result =   mysql_query($sql, $this->conn) ; 
        $this->query_count++; 
        if ( false === $result) { 
            $this->error(); 
            return false; 
        } else { 
            $this->numRows = mysql_affected_rows($this->conn); 
            return $this->numRows; 
        } 
    } 
    /**
+------------------------------------------------- ----------
* Get all query data
+------------------------------------------------- ----------
* @access private
+------------------------------------------------- ----------
* @return array
​​*/ 
    private function getAll() { 
        //返回数据集  
        $result = array(); 
        if($this->numRows >0) { 
            while($row = mysql_fetch_assoc($this->queryID)){ 
                $result[]   =   $row; 
            } 
            mysql_data_seek($this->queryID,0); 
        } 
        return $result; 
    } 
    /**
+------------------------------------------------- ----------
* Get the field information of the data table
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
​​*/ 
    public function getFields($tableName) { 
        $result =   $this->query('SHOW COLUMNS FROM `'.$tableName.'`'); 
        $info   =   array(); 
        if($result) { 
            foreach ($result as $key => $val) { 
                $info[$val['Field']] = array( 
                    'name'    => $val['Field'], 
                    'type'    => $val['Type'], 
                    'notnull' => (bool) ($val['Null'] === ''), // not null is empty, null is yes  
                    'default' => $val['Default'], 
                    'primary' => (strtolower($val['Key']) == 'pri'), 
                    'autoinc' => (strtolower($val['Extra']) == 'auto_increment'), 
                ); 
            } 
        } 
        return $info; 
    } 
    /**
     +----------------------------------------------------------
     * 取得数据库的表信息
     +----------------------------------------------------------
     * @access public
     +----------------------------------------------------------
     */ 
    public function getTables($dbName='') { 
        if(!empty($dbName)) { 
           $sql    = 'SHOW TABLES FROM '.$dbName; 
        }else{ 
           $sql    = 'SHOW TABLES '; 
        } 
        $result =   $this->query($sql); 
        $info   =   array(); 
        foreach ($result as $key => $val) { 
            $info[$key] = current($val); 
        } 
        return $info; 
    } 
 
    /**
+------------------------------------------------- ----------
* The ID of the last operation
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
     public function last_insert_id(){ 
        return mysql_insert_id($this->conn); 
    } 
    /**
* Execute a
with result set count ​​*/ 
    public function count($sql){ 
        return $this->execute($sql); 
    } 
    /**
+------------------------------------------------- ----------
* Start transaction
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @return void
+------------------------------------------------- ----------
​​*/ 
    public function startTrans() { 
        if ($this->transTimes == 0) { 
            mysql_query('START TRANSACTION', $this->conn); 
        } 
        $this->transTimes++; 
        return ; 
    } 
 
    /**
+------------------------------------------------- ----------
* Submit transaction
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @return boolen
+------------------------------------------------- ----------
​​*/ 
    public function commit() 
    { 
        if ($this->transTimes > 0) { 
            $result = mysql_query('COMMIT', $this->conn); 
            $this->transTimes = 0; 
            if(!$result){ 
                throw new Exception($this->error()); 
            } 
        } 
        return true; 
    } 
 
    /**
+------------------------------------------------- ----------
* *Transaction rollback
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @return boolen
+------------------------------------------------- ----------
​​*/ 
    public function rollback() 
    { 
        if ($this->transTimes > 0) { 
            $result = mysql_query('ROLLBACK', $this->conn); 
            $this->transTimes = 0; 
            if(!$result){ 
                throw new Exception($this->error()); 
            } 
        } 
        return true; 
    } 
    /**
+------------------------------------------------- ----------
* Error message
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
     public function error() { 
        $this->error = mysql_error($this->conn); 
        if('' != $this->queryStr){ 
            $this->error .= "n [ SQL语句 ] : ".$this->queryStr; 
        } 
        return $this->error; 
    } 
    /**
+------------------------------------------------- ----------
* Release query results
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
​​*/ 
    public function free() { 
        @mysql_free_result($this->queryID); 
        $this->queryID = 0; 
        $this->query_list = null; 
    } 
    /**
+------------------------------------------------- ----------
*Close connection
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/ 
    function close(){ 
        if ($this->conn && !mysql_close($this->conn)){ 
            throw new Exception($this->error()); 
        } 
        $this->conn = 0; 
        $this->query_count = 0; 
    } 
/**
+------------------------------------------------- ----------
* Destruction method
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
​​*/
Function __destruct(){
$this->close();
}  
}

// +-------------------------------------------------- -----------------------
// |MySQL operation class
// +-------------------------------------------------- -----------------------
// |@微梁QQ:496928838
// +-------------------------------------------------- -----------------------
class MySQL{

private $db_mysql_hostname;
private $db_mysql_username;
private $db_mysql_password;
private $db_mysql_database;
private $db_mysql_port;
private $db_mysql_charset;

private $query_list = array();

//Number of queries
public $query_count = 0;
//Query start time
public $query_start_time;

//Current query ID
protected $queryID;
//Current connection
protected $conn;
//Number of transaction instructions
protected $transTimes = 0;
//Return or affect the number of records
protected $numRows = 0;
// Error message
protected $error = '';

//Static instance
static private $db_class;
//Get this category
​ static public function getClass()
{
If (is_null(self::$db_class)) {
               self::$db_class=new MySQL();
}
          return self::$db_class;
}

//If it is defined as a private method, it will be new. Use getClass
Private function __construct()
{
                                                                        }


    public function connect($hostname_or_conf,$username,$password,$database,$port = '3306',$char = 'utf8'){
        if(is_array($hostname_or_conf)){
            $this->db_mysql_hostname = $hostname_or_conf['hostname'];
            $this->db_mysql_username = $hostname_or_conf['username'];
            $this->db_mysql_password = $hostname_or_conf['password'];
            $this->db_mysql_database = $hostname_or_conf['database'];
            $this->db_mysql_port = isset($hostname_or_conf['port'])?$hostname_or_conf['port']:'3306';
            $this->db_mysql_charset = isset($hostname_or_conf['charset'])?$hostname_or_conf['charset']:'utf8';
        }elseif(!empty($hostname_or_conf)||!empty($username)||!empty($password)||!empty($database))
        {
             $this->db_mysql_hostname = $hostname_or_conf;
             $this->db_mysql_username = $username;
             $this->db_mysql_password = $password;
             $this->db_mysql_database = $database;
             $this->db_mysql_port = $port;
             $this->db_mysql_charset = $char;
            
        }else{
            die('configuration error.');
        }
       
        $server = $this->db_mysql_hostname.':'.$this->db_mysql_port;
        $this->conn = mysql_connect($server,$this->db_mysql_username,$this->db_mysql_password,true) or die('Connect MySQL DB error!');
        mysql_select_db($this->db_mysql_database,$this->conn) or die('select db error!');
        mysql_query("set names " . $this->db_mysql_charset, $this->conn);

    }

 


 /**
+------------------------------------------------- ----------
* Set data object value
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
*table,where,order,limit,data,field,join,group,having
+------------------------------------------------- ----------
​​*/
 public function table($table){
  $this->query_list['table'] = $table;
  return $this;
 }
 
 public function where($where){
  $this->query_list['where'] = $where;
  return $this;
 }
 
 public function order($order){
  $this->query_list['order'] = $order;
  return $this;
 }
 
 public function limit($offset,$length=null){
  if (is_null($length)) {
   $this->query_list['limit']='limit '.$offset;
   return $this;
  }else {
   if(!isset($length)){
    $length = $offset;
    $offset = 0;
   }
    $this->query_list['limit'] = 'limit '.$offset.','.$length;
    return $this;
  }

 }
 
 public function data($data){
  //读取数据表字段,然后处理表单数据
  $dataList = $this->getFields($this->query_list['table']);
  $arr=array();
  foreach ($dataList as $key=>$value) {
   if (array_key_exists ($key,$data) ) {
    $arr[$key]=$data[$key];
   }
   
  }
  //var_dump($arr);
  /*
  if(is_object($data)){
   $data   =   get_object_vars($data);
  }elseif (is_string($data)){
   parse_str($data,$data);
  }elseif(!is_array($data)){
   //Log:DATA_TYPE_INVALID
  }
  */
  $this->query_list['data'] = $arr;
  return $this;
 }
 public function field($fields){
  $this->query_list['fields'] = $fields;
  return $this;
 }
 public function join($join){
  $this->query_list['join'] = $join;
  return $this;
 }
 public function group($group){
  $this->query_list['group'] = $group;
  return $this;
 }
 public function having($having){
  $this->query_list['having'] = $having;
  return $this;
 }
 /**
+------------------------------------------------- ----------
* Query
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/
 public function select(){
  $select_sql = 'select ';
  $fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*';
  $select_sql.=$fields;
  $select_sql.= ' from `'.$this->query_list['table'].'` ';
  
  isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):'';
  isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):'';
  isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):'';
  isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):'';
  isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):'';
  isset($this->query_list['limit'])?($select_sql.=' '.$this->query_list['limit']):'';
 // echo '----->'.$select_sql;
  return $this->query($select_sql);
 }
 /**
+------------------------------------------------- ----------
* Add
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/
 public function add(){
  $add_sql = 'insert into `'.$this->query_list['table'].'` (';
  
  $data = $this->query_list['data'];
  $value = $field = '';
  foreach($data as $k=>$v){
   $field .= '`'.$k.'`,';
   if(is_numeric($v))
    $value .= $v.',';
   else
    $value .= '''.$v.'',';
  }
  $add_sql .= rtrim($field,',').') values ('.rtrim($value,',').')';

 // echo 'add_sql'.$add_sql;
  return $this->execute($add_sql);
 }
 /**
+------------------------------------------------- ----------
* Delete
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/
 public function delete(){
  $del_sql = 'delete from `'.$this->query_list['table'].'` where '.$this->query_list['where'];
  
  if(isset($this->query_list['order']))
   $del_sql .= 'order by '.$this->query_list['order'];
  if(isset($this->query_list['limit']))
   $del_sql .= ' '.$this->query_list['limit'];
   
  return $this->execute($del_sql);
  
 }
 /**
+------------------------------------------------- ----------
* Update
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param
+------------------------------------------------- ----------
​​*/
 public function update(){
  $update_sql = 'update `'.$this->query_list['table'].'` set ';
  $data = $this->query_list['data'];
  
  foreach($data as $k=>$v){
   if(is_numeric($v))
    $update_sql .= '`'.$k.'` ='.$v.',';
   else
    $update_sql .= '`'.$k.'` =''.$v.'',';
  }
  $update_sql = rtrim($update_sql,',');
  if(isset($this->query_list['where']))
   $update_sql .= ' where '.$this->query_list['where'];
  if(isset($this->query_list['order']))
   $update_sql .= ' order by '.$this->query_list['order'];
  if(isset($this->query_list['limit']))
   $update_sql .= ' '.$this->query_list['limit'];
  
  return $this->execute($update_sql);
  
 }
  /**
+------------------------------------------------- ----------
* Execute the query and return the data set
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param string $sql sql command
​​*/
    public function query($sql) {
        if ( !$this->conn ) return false;
        $this->queryStr = $sql;
        //释放前次的查询结果
        if ( $this->queryID ) {    $this->free();    }
       
        $this->query_start_time = microtime(true);
       
        $this->queryID = mysql_query($sql, $this->conn);
        $this->query_count++;
        if ( false === $this->queryID ) {
            $this->error();
            return false;
        } else {
            $this->numRows = mysql_num_rows($this->queryID);
            return $this->getAll();
        }
    }
 /**
+------------------------------------------------- ----------
* Execution statement
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
* @param string $sql sql command
+------------------------------------------------- ----------
​​*/
    public function execute($sql) {
        if ( !$this->conn ) return false;
        $this->queryStr = $sql;
        //释放前次的查询结果
        if ( $this->queryID ) {    $this->free();    }
       
        $this->query_start_time = microtime(true);
       
        $result =   mysql_query($sql, $this->conn) ;
        $this->query_count++;
        if ( false === $result) {
            $this->error();
            return false;
        } else {
            $this->numRows = mysql_affected_rows($this->conn);
            return $this->numRows;
        }
    }
 /**
+------------------------------------------------- ----------
* Get all query data
+------------------------------------------------- ----------
* @access private
+------------------------------------------------- ----------
* @return array
​​*/
    private function getAll() {
        //返回数据集
        $result = array();
        if($this->numRows >0) {
            while($row = mysql_fetch_assoc($this->queryID)){
                $result[]   =   $row;
            }
            mysql_data_seek($this->queryID,0);
        }
        return $result;
    }
 /**
+------------------------------------------------- ----------
* Get the field information of the data table
+------------------------------------------------- ----------
* @access public
+------------------------------------------------- ----------
​​*/
    public function getFields($tableName) {
        $result =   $this->query('SHOW COLUMNS FROM `'

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn