<?php
class MySQL_DB {
private $last_query; //上一次执行的sql指令
private $conn; //当前连接数据库服务器的资源类型
private $errno; //错误代号
private $errDie = true; //强制错误后结束脚本
private $errMsgArr_filename = "";//自定义错误提示信息数组的文件名
//构造函数
public function __construct($dbhost, $dbuser, $dbpwd, $dbname, $dbcharset="utf8", $pconnect=0) {
//连接数据库服务器
if($pconnect == 0) {
$this->conn = mysql_connect($dbhost, $dbuser, $dbpwd);
}else{
$this->conn = mysql_pconnect($dbhost, $dbuser, $dbpwd);
}
if($this->conn == false) {
$this->errno = mysql_errno();//记录发生的错误代号
$this->errMsg();//报错
}
//选择操作的目标数据库
$res = mysql_select_db($dbname, $this->conn);
if($res == false) {
$this->errno = mysql_errno();//记录发生的错误代号
$this->errMsg();//报错
}
//设置字符集编码
$this->query("set names " . $dbcharset);
}
//设置errDie属性的方法(预留为以后ajax做操作准备)
private function set_errDie($value){
$this->errDie = $value;
}
//查询一条记录的sql操作
public function get_one($sql) {
$res = $this->query($sql);
$row = mysql_fetch_assoc($res);
return $row;
}
//查询多条
public function get_all($sql) {
$res = $this->query($sql);
$arr = array();
while($row = mysql_fetch_assoc($res)) {
$arr[] = $row;
}
return $arr;
}
//查询一个字段的值
public function get_val($sql) {
$res = $this->query($sql);
$row = mysql_fetch_array($res);
return $row[0];
}
//统计行数
public function get_count($tbName, $addWhere="") {
$sql = "select count(*) from {$tbName} {$addWhere}";
return $this->get_val($sql);
}
//执行sql指令
public function query($sql) {
$this->last_query = $sql;//保存当前的sql指令
$res = mysql_query($sql);
if($res == false) {
$this->errno = mysql_errno();//记录发生的错误代号
if($this->errno == 1062) {
//针对唯一性索引的错误,做特殊处理
return -1062;
}else{
$this->errMsg();//报错
}
}else{
return $res;
}
}
public function get_insert_id() {
return mysql_insert_id();
}
//设置自定义错误数组文件名的方法
private function set_errMsgArr_filename($filename) {
$this->errMsgArr_filename = $filename;
}
//获得定义在单独文件中的自定义错误信息
private function get_errMsgArr() {
if(file_exists($this->errMsgArr_filename)){
require_once($this->errMsgArr_filename);
}else{
$mysql_err_msg = "";
}
return $mysql_err_msg;
}
public function errMsg() {
echo "<div style='color:red;'>";
echo "Errno: " . $this->errno."<BR>";
echo "Last Query: " . $this->last_query . "<BR>";
//显示自定义的错误信息
$errMsgArr = $this->get_errMsgArr();
$errMsg = empty($errMsgArr) ? mysql_error() : ($errMsgArr[$this->errno] . "(" . mysql_error(). ")");
echo "Error Message: " . $errMsg;
echo "</div>";
if($this->errDie == true) {
exit;
}
}
}
?>
php管理mysql数据库类
原创
©著作权归作者所有:来自51CTO博客作者yfl215的原创作品,如需转载,请与作者联系,否则将追究法律责任
上一篇:php 实现的图像读取到表格中
下一篇:面向和面向过程的区别
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mongo php类
mongo php类
php class mongo -
PHP类总结
类设计最好一个类只有一个主要职责。......
php mysql sql 数据库 未定义 -
php 创建类
6.2.1 创建类在PHP 中,要创建一个类很简
构造函数 PHP 析构函数 -
php类重载
php重载实现
PHP语法 php 权限修饰符 父类 -
PHP学习笔记【14】--php类
<?php //类的定义 class Person{ public $name;
PHP学习笔记 PHP类定义 PHP类 -
PHP - Mysql数据库备份类
使用方法:require_once("backdata.class.php");
mysql sql 数据 数据库 php