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脚本的执行
}
}
}
求助高手对每行代码进行中文注释讲解;
/**
* 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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28