Home  >  Article  >  Backend Development  >  The first day of PHP practice_PHP tutorial

The first day of PHP practice_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:11:03704browse

I learned something today

php is sent to the browser to set the encoding

header('content-type:text/html;charset=utf-8');


The smarty template engine will report N multiple errors in the class


The DB class in brophp cannot be used alone even after I modified it


The DB class in thinkphp cannot be used alone even after I modified it.


Finally, I used the online open source mysql class


[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 = '';
       
Public function __construct($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.');
         } 
$this->connect();
}  
       
private function connect(){
$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){ 
        if(!isset($length)){ 
            $length = $offset; 
            $offset = 0; 
        } 
        $this->query_list['limit'] = 'limit '.$offset.','.$length; 
        return $this; 
    } 
     
    public function data($data){ 
        /*
        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'] = $data; 
        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; 
    } 
    /**
     +----------------------------------------------------------
     * 查询
     +----------------------------------------------------------
     * @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']):''; 
         
        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,',').')'; 
 
        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; 
    } 
    /**
     +----------------------------------------------------------
     * 取得数据表的字段信息
     +----------------------------------------------------------
     * @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; 
    } 
    /**
+------------------------------------------------- ----------
* Get database table information
+------------------------------------------------- ----------
* @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 = '';

public function __construct($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.');
}
$this->connect();
}

private function connect(){
$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){
if(!isset($length)){
$length = $offset;
$offset = 0;
}
$this->query_list['limit'] = 'limit '.$offset.','.$length;
return $this;
}

 public function data($data){
  /*
  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'] = $data;
  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']):'';
  
  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,',').')';

  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;
    }
 /**
+------------------------------------------------- ----------
* Get database table information
+------------------------------------------------- ----------
* @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;
    }
    /**

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