当前位置:首页 > PHP教程 > php类库 > 列表

通用mysql数据库连接类代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-11 23:15:03 浏览: 评论:0 

数据库连接是一种有限的昂贵的资源,数据库连接影响到程序的性能指标,数据库连接池正是针对这个问题提出来的,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;

释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这项技术能明显提高对数据库操作的性能.

通用mysql数据库连接类代码如下:

  1. /* 
  2.  * created on 2010-3-8 
  3.  * make by:suniteboy 
  4.  * my first mysql class 
  5.  * 
  6.  */ 
  7.  class mysql{ 
  8.  private $server   =""
  9.  private $user     =""
  10.  private $pwd      =""
  11.  private $database =""
  12.  private $linkmode = 1; //连接模式,0表示普通连接,1表示永久连接 
  13.  private $conn     = 0; 
  14.  private $sql      =""//sql语句 
  15.  private $result   =""//query查询结果 
  16.  private $record   =""//保存记录 
  17.  //============================================ 
  18.  // 构造函数 
  19.  //============================================ 
  20.  public function __construct($server,$user,$pwd,$database,$charset="utf8",$linkmode=0) 
  21.  { 
  22.   if(emptyempty ( $server )| emptyempty$user ) | emptyempty$database )) 
  23.   { 
  24.    $this->show_error("连接信息不完整,请检查是否提供了服务器地址,用户名以及连接的数据库信息"); 
  25.    return 0; 
  26.   } 
  27.   $this->server = $server
  28.   $this->user = $user
  29.   $this->pwd = $pwd
  30.   $this->database = $database
  31.   $this->charset = $charset
  32.   $this->linkmode = $linkmode
  33.   $this->connect(); 
  34.  } 
  35.  //============================================ 
  36.  // 连接函数 
  37.  //============================================ 
  38.  public function connect() 
  39.  { 
  40.   $this->conn = $this->linkmode?mysql_pconnect($this->server,$this->user,$this->pwd): 
  41.   mysql_connect($this->server,$this->user,$this->pwd); 
  42.   if(!$this->conn) 
  43.   { 
  44.    $this->show_error('无法连接服务器'); 
  45.    return 0; 
  46.   } 
  47.   if(!mysql_select_db($this->database)) 
  48.   { 
  49.    $this->show_error('无法连接数据库'.$this->database); 
  50.    return 0; 
  51.   } 
  52. // $this->query('set names '.$this->charset); 
  53.  return $this->conn; 
  54.  } 
  55.  //============================================ 
  56.  // mysql查询函数 
  57.  //============================================ 
  58.  public function query($sql
  59.  { 
  60.   if(emptyempty($sql)) 
  61.   { 
  62.    $this->show_error('sql语句为空'); 
  63.    return 0; 
  64.   } 
  65.   $this->sql = preg_replace('/ {2,}/',' ',trim($sql)); 
  66.   $this->result = mysql_query($this->sql,$this->conn); 
  67.   if(!$this->result) 
  68.   { 
  69.    $this->show_error('sql语句错误',true); 
  70.    return 0; 
  71.   } 
  72.   return $this->result; 
  73.  } 
  74.  //============================================ 
  75.  // 函数 
  76.  //============================================ 
  77.  public function select_db($dbname
  78.  { 
  79.   return mysql_select_db($dbname); 
  80.  } 
  81.  public function fetch_array($query,$result_type=mysql_assoc) 
  82.  { 
  83.   return mysql_fetch_array($query,$result_type); 
  84.  } 
  85.  public function fetch_row($query
  86.  { 
  87.   return mysql_fetch_row($query); 
  88.  } 
  89.  //============================================ 
  90.  // 取得前一次mysql操作所影响到的记录行数 
  91.  //============================================ 
  92.  public function affected_rows() 
  93.  { 
  94.   return mysql_affected_rows(); 
  95.  } 
  96.  public function num_fields($query
  97.  { 
  98.   return mysql_num_fields($query); 
  99.  } 
  100.  public function num_rows($query
  101.  { 
  102.   return @mysql_num_rows($query); 
  103.  } 
  104.  public function insert_id() 
  105.  { 
  106.   return mysql_insert_id(); 
  107.  } 
  108.  public function close() 
  109.  { 
  110.   return mysql_close(); 
  111.  } 
  112.  //============================================ 
  113.  // 从记录中取出一条结果 
  114.  //============================================ 
  115.  public function getone($sql
  116.  { 
  117.   $res = $this->query($sql); 
  118.   if($res!==false) 
  119.   { 
  120.    $row = mysql_fetch_row($res); 
  121.    if($row!==false) 
  122.    { 
  123.     return $row
  124.    } 
  125.    else 
  126.    { 
  127.     return ''
  128.    } 
  129.   } 
  130.   else 
  131.   { 
  132.    return false; 
  133.   } 
  134.  } 
  135.  //============================================ 
  136.  // 从记录中取出所有结果 
  137.  //============================================ 
  138.  public function getall($sql
  139.  { 
  140.   $res = $this->query($sql); 
  141.   if($res!==false) 
  142.   { 
  143.    $arr = array(); 
  144.    while($row = mysql_fetch_assoc($res)) 
  145.    { 
  146.     $arr[] = $row
  147.    } 
  148.    return $arr
  149.   } 
  150.   else 
  151.   { 
  152.    return false; 
  153.   } 
  154.  } 
  155.  //============================================ 
  156.  // 错误提示函数 
  157.  //============================================ 
  158.  public function show_error($msg='',$sql=false) 
  159.  { 
  160.   $err = '['.mysql_errno().']'.mysql_error(); 
  161.   if($sql$sql='sql语句:'.$this->sql; 
  162.   if($msg==''
  163.   { 
  164.    echo $err
  165.    echo "</br>"
  166.   } 
  167.   elseif($sql &&$msg
  168.   {//开源代码phpfensi.com 
  169.    echo $msg
  170.    echo "</br>"
  171.    echo $sql
  172.   } 
  173.   else 
  174.   { 
  175.    echo $msg
  176.    echo "</br>"
  177.   } 
  178.  } 
  179.  }

Tags: mysql数据库连接类 mysql连接类

分享到: