php连接mysql数据库的连接类
生活随笔
收集整理的這篇文章主要介紹了
php连接mysql数据库的连接类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
class?dbstuff?{
????var?$querynum?=?0;
????var?$link;
????var?$charset;
????function?connect($dbhost,?$dbuser,?$dbpw,?$dbname?=?'',?$pconnect?=?0,?$halt?=?TRUE){
????????if($pconnect)?{
????????????//打開一個mysql的持續連接
????????????if(!$this->link?=?@mysql_pconnect($dbhost,?$dbuser,?$dbpw))?{
????????????????//連接失敗輸出錯誤
????????????????$halt?&&?$this->halt('Can?not?connect?to?MySQL?server');
????????????}
????????}?else?{
????????????//使用mysql_connect連接數據庫
????????????if(!$this->link?=?@mysql_connect($dbhost,?$dbuser,?$dbpw))?{
????????????????$halt?&&?$this->halt('Can?not?connect?to?MySQL?server');
????????????}
????????}
????????//檢查數據庫版本
????????if($this->version()?>?'4.1')?{
????????????if($this->charset)?{
????????????????@mysql_query("SET?character_set_connection=$this->charset,?character_set_results=$this->charset,?character_set_client=binary",?$this->link);
????????????}
????????????if($this->version()?>?'5.0.1')?{
????????????????@mysql_query("SET?sql_mode=''",?$this->link);
????????????}
????????}
????????//選擇數據庫
????????if($dbname)?{
????????????@mysql_select_db($dbname,?$this->link);
????????}
????}
????//選擇?MySQL?數據庫
????function?select_db($dbname)?{
????????return?mysql_select_db($dbname,?$this->link);
????}
????//從結果集中取得一行作為關聯數組,或數字數組
????function?fetch_array($query,?$result_type?=?MYSQL_ASSOC)?{
????????return?mysql_fetch_array($query,?$result_type);
????}
????//發送一條?MySQL?查詢,返回結果
????function?query($sql,?$type?=?'')?{
????????if(D_BUG)?{
????????????global?$_SGLOBAL;
????????????$sqlstarttime?=?$sqlendttime?=?0;
????????????$mtime?=?explode('?',?microtime());
????????????$sqlstarttime?=?number_format(($mtime[1]?+?$mtime[0]?-?$_SGLOBAL['supe_starttime']),?6)?*?1000;
????????}
????????$func?=?$type?==?'UNBUFFERED'?&&?@function_exists('mysql_unbuffered_query')??
????????????'mysql_unbuffered_query'?:?'mysql_query';
????????if(!($query?=?$func($sql,?$this->link))?&&?$type?!=?'SILENT')?{
????????????$this->halt('MySQL?Query?Error',?$sql);
????????}
????????if(D_BUG)?{
????????????$mtime?=?explode('?',?microtime());
????????????$sqlendttime?=?number_format(($mtime[1]?+?$mtime[0]?-?$_SGLOBAL['supe_starttime']),?6)?*?1000;
????????????$sqltime?=?round(($sqlendttime?-?$sqlstarttime),?3);
????????????$explain?=?array();
????????????$info?=?mysql_info();
????????????if($query?&&?preg_match("/^(select?)/i",?$sql))?{
????????????????$explain?=?mysql_fetch_assoc(mysql_query('EXPLAIN?'.$sql,?$this->link));
????????????}
????????????$_SGLOBAL['debug_query'][]?=?array('sql'=>$sql,?'time'=>$sqltime,?'info'=>$info,?'explain'=>$explain);
????????}
????????$this->querynum++;
????????return?$query;
????}
????//取得MySQL操作所影響的記錄行數
????function?affected_rows()?{
????????return?mysql_affected_rows($this->link);
????}
????//返回MySQL操作產生的文本錯誤信息
????function?error()?{
????????return?(($this->link)???mysql_error($this->link)?:?mysql_error());
????}
????//返回MySQL操作中的錯誤信息的數字編碼
????function?errno()?{
????????return?intval(($this->link)???mysql_errno($this->link)?:?mysql_errno());
????}
????//取得結果數據
????function?result($query,?$row)?{
????????$query?=?@mysql_result($query,?$row);
????????return?$query;
????}
????//取得結果集中行的數目
????function?num_rows($query)?{
????????$query?=?mysql_num_rows($query);
????????return?$query;
????}
????//取得結果集中字段的數目
????function?num_fields($query)?{
????????return?mysql_num_fields($query);
????}
????//釋放結果內存
????function?free_result($query)?{
????????return?mysql_free_result($query);
????}
????//獲得最新插入數據的ID
????function?insert_id()?{
????????return?($id?=?mysql_insert_id($this->link))?>=?0???$id?:?$this->result($this->query("SELECT?last_insert_id()"),?0);
????}
????//從結果集中取得一行作為枚舉數組
????function?fetch_row($query)?{
????????$query?=?mysql_fetch_row($query);
????????return?$query;
????}
????//從結果集中取得列信息并作為對象返回
????function?fetch_fields($query)?{
????????return?mysql_fetch_field($query);
????}
????//檢查數據庫版本
????function?version()?{
????????return?mysql_get_server_info($this->link);
????}
????//關閉數據庫連接
????function?close()?{
????????return?mysql_close($this->link);
????}
}
????var?$querynum?=?0;
????var?$link;
????var?$charset;
????function?connect($dbhost,?$dbuser,?$dbpw,?$dbname?=?'',?$pconnect?=?0,?$halt?=?TRUE){
????????if($pconnect)?{
????????????//打開一個mysql的持續連接
????????????if(!$this->link?=?@mysql_pconnect($dbhost,?$dbuser,?$dbpw))?{
????????????????//連接失敗輸出錯誤
????????????????$halt?&&?$this->halt('Can?not?connect?to?MySQL?server');
????????????}
????????}?else?{
????????????//使用mysql_connect連接數據庫
????????????if(!$this->link?=?@mysql_connect($dbhost,?$dbuser,?$dbpw))?{
????????????????$halt?&&?$this->halt('Can?not?connect?to?MySQL?server');
????????????}
????????}
????????//檢查數據庫版本
????????if($this->version()?>?'4.1')?{
????????????if($this->charset)?{
????????????????@mysql_query("SET?character_set_connection=$this->charset,?character_set_results=$this->charset,?character_set_client=binary",?$this->link);
????????????}
????????????if($this->version()?>?'5.0.1')?{
????????????????@mysql_query("SET?sql_mode=''",?$this->link);
????????????}
????????}
????????//選擇數據庫
????????if($dbname)?{
????????????@mysql_select_db($dbname,?$this->link);
????????}
????}
????//選擇?MySQL?數據庫
????function?select_db($dbname)?{
????????return?mysql_select_db($dbname,?$this->link);
????}
????//從結果集中取得一行作為關聯數組,或數字數組
????function?fetch_array($query,?$result_type?=?MYSQL_ASSOC)?{
????????return?mysql_fetch_array($query,?$result_type);
????}
????//發送一條?MySQL?查詢,返回結果
????function?query($sql,?$type?=?'')?{
????????if(D_BUG)?{
????????????global?$_SGLOBAL;
????????????$sqlstarttime?=?$sqlendttime?=?0;
????????????$mtime?=?explode('?',?microtime());
????????????$sqlstarttime?=?number_format(($mtime[1]?+?$mtime[0]?-?$_SGLOBAL['supe_starttime']),?6)?*?1000;
????????}
????????$func?=?$type?==?'UNBUFFERED'?&&?@function_exists('mysql_unbuffered_query')??
????????????'mysql_unbuffered_query'?:?'mysql_query';
????????if(!($query?=?$func($sql,?$this->link))?&&?$type?!=?'SILENT')?{
????????????$this->halt('MySQL?Query?Error',?$sql);
????????}
????????if(D_BUG)?{
????????????$mtime?=?explode('?',?microtime());
????????????$sqlendttime?=?number_format(($mtime[1]?+?$mtime[0]?-?$_SGLOBAL['supe_starttime']),?6)?*?1000;
????????????$sqltime?=?round(($sqlendttime?-?$sqlstarttime),?3);
????????????$explain?=?array();
????????????$info?=?mysql_info();
????????????if($query?&&?preg_match("/^(select?)/i",?$sql))?{
????????????????$explain?=?mysql_fetch_assoc(mysql_query('EXPLAIN?'.$sql,?$this->link));
????????????}
????????????$_SGLOBAL['debug_query'][]?=?array('sql'=>$sql,?'time'=>$sqltime,?'info'=>$info,?'explain'=>$explain);
????????}
????????$this->querynum++;
????????return?$query;
????}
????//取得MySQL操作所影響的記錄行數
????function?affected_rows()?{
????????return?mysql_affected_rows($this->link);
????}
????//返回MySQL操作產生的文本錯誤信息
????function?error()?{
????????return?(($this->link)???mysql_error($this->link)?:?mysql_error());
????}
????//返回MySQL操作中的錯誤信息的數字編碼
????function?errno()?{
????????return?intval(($this->link)???mysql_errno($this->link)?:?mysql_errno());
????}
????//取得結果數據
????function?result($query,?$row)?{
????????$query?=?@mysql_result($query,?$row);
????????return?$query;
????}
????//取得結果集中行的數目
????function?num_rows($query)?{
????????$query?=?mysql_num_rows($query);
????????return?$query;
????}
????//取得結果集中字段的數目
????function?num_fields($query)?{
????????return?mysql_num_fields($query);
????}
????//釋放結果內存
????function?free_result($query)?{
????????return?mysql_free_result($query);
????}
????//獲得最新插入數據的ID
????function?insert_id()?{
????????return?($id?=?mysql_insert_id($this->link))?>=?0???$id?:?$this->result($this->query("SELECT?last_insert_id()"),?0);
????}
????//從結果集中取得一行作為枚舉數組
????function?fetch_row($query)?{
????????$query?=?mysql_fetch_row($query);
????????return?$query;
????}
????//從結果集中取得列信息并作為對象返回
????function?fetch_fields($query)?{
????????return?mysql_fetch_field($query);
????}
????//檢查數據庫版本
????function?version()?{
????????return?mysql_get_server_info($this->link);
????}
????//關閉數據庫連接
????function?close()?{
????????return?mysql_close($this->link);
????}
}
轉載于:https://www.cnblogs.com/zhuboxingzbx/articles/1453700.html
總結
以上是生活随笔為你收集整理的php连接mysql数据库的连接类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 切莫开一块地荒一块地
- 下一篇: SQL Server 2005 智能感知