+ -
当前位置:首页 → 问答吧 → mysql数据库操作类

mysql数据库操作类

时间:2010-09-04

来源:互联网

《?php
/**
 * Mysql数据库操作类
 */
class Mysql_DB{
 var $link, $sql, $errno;
 var $host, $username, $passwd;
 var $dbname, $charset, $pconnect;
 
 function __construct($localhost, $username, $passwd, $dbname, $charset="utf8", $pconnect=0){
  $this->localhost = $localhost;
  $this->username = $username;
  $this->passwd = $passwd;
  $this->dbname = $dbname;
  $this->charset = $charset;
  $this->pconnect = $pconnect;
  $this->connect();
  
  $this->select_db();
  $this->query("set names ".$charset, 1);//防止汉字出现乱码,一旦连接上服务器选择操作的数据库后必须立刻设置字符集
 }
 function connect() {
  $this->link  = @mysql_connect($this->localhost, $this->username, $this->passwd) or die("Can't connect to ". $this->localhost);
 }
 function select_db() {
  mysql_select_db($this->dbname);
 }
 /**
  * die_msg 控制是否强制显示自定义错误
  */
 function query($sql) {
  $this->sql = $sql;
  $result = @mysql_query($sql, $this->link); //可以用自定义错误信息的方法,就要压制本身的错误信息
  if($result) {
   return $result;
  }else{
   //有错误发生
   $this->errno = mysql_errno($this->link);
   
   //可以根据错误ID,配置好一些友好的错误信息提示语句
   $msgArr = array();
   $msgArr['1062'] = "唯一性索引有重复值插入";
   /*...更多错误代码根据实际业务再添加...*/
   if($errMsgArr[$this->errno]) {
    $this->errMsg($errMsgArr);//有自定义代码错误
   }else{
    die("MySQL错误".$this->errno);//直接报错
   }
  }
 }
 function get_one($sql) {
  $this->sql = $sql;
  $res= $this->query($sql);
  return mysql_fetch_assoc($res);
 }
 function get_all($sql) {
  $this->sql = $sql;
  $res = $this->query($sql);
  $arr = array();
  while($row = mysql_fetch_assoc($res)) {
   $arr[] = $row;
  }
  return $arr;
 }
 function get_insertID() {
  return mysql_insert_id();
 }
 
 /**
  * 显示自定义错误
  */
 function msg($msgArr) {
  error_reporting(7);//强制关闭PHP自身的非致命性错误显示
  if($this->errno) {
   $errMsg = $msgArr[$this->errno];//已定义的错误
   echo "<div style='color:red;'>\n";
    echo "<h4>数据库操作错误</h4>\n";
    echo "<h5>错误代码:".$this->errno."</h5>\n";
    echo "<h5>错误信息:".$errMsg."</h5>\n";
    echo "<h5>上一次执行的SQL语句:".$this->sql."</h5>\n";
   echo "</div>";
   die;//出错了,显示错误后,停止PHP脚本的执行
  }
 }
}
求助高手对每行代码进行中文注释讲解;

作者: lwdd520   发布时间: 2010-09-04

作者: lwdd520   发布时间: 2010-09-04