Maison > Article > développement back-end > php mysql 数据库类_PHP教程
本是一款大家常用的mysql数据库类哦,下载下去看看吧。
class mySqlClass {//定义整个数据库访问类 mySqlClass
var $querynum = 0;//查询次数变量
//打开服务器的连接------------------------------------------------------------------------------------------------------//
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
//mysql_connect -- 打开一个到 MySQL 服务器的连接
//mysql_pconnect -- 打开一个到 MySQL 服务器的持久连接
//mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别。
//首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
//其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。
//判断是否开启持久连接设置,开启则使用持久连接,未开启则使用一般连接
if($pconnect) {
if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
}
//设置字符编码如果数据库版本大于4.1且全局变量中字符集参数不为空---------------------------------------------------------//
if($this->version() > '4.1') {
//$charset = 'gbk';
$charset = 'utf-8';
$dbcharset = '';
if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
//mysql_query -- 发送一条 MySQL 查询
//设置NAMES参数为相应字符集参数值,避免PHP读取mysql数据库时出现中文乱码
if($dbcharset) {
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary");
}
//如果数据库版本大于5.0设置sql_mode参数为空
if($this->version() > '5.0.1') {
mysql_query("SET sql_mode=''");
}
}
if($dbname) {//如果数据库名存在
//mysql_select_db -- 选择 MySQL 数据库
//如果选择数据库未成功
mysql_select_db($dbname);
}
}
//mysql_select_db -- 选择 MySQL 数据库---------------------------------------------------------------------//
function select_db($dbname) {
return mysql_select_db($dbname);
}
//读取一条数据记录函数---------------------------------------------------------------------//
//mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
//mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。
//MYSQL_ASSOC 返回的数据列使用字段名作为数组的索引名。
//MYSQL_BOTH 返回的数据列使用字段名及数字索引作为数组的索引名。
//MYSQL_NUM 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始,表示返回结果的第一个字段。
function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
}
//查询数据库函数---------------------------------------------------------------------//
function query($sql, $type = '') {
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql)) && $type != 'SILENT') {
$this->halt('0');
}
//查询次数+1
$this->querynum++;
//返回查询结果资源
return $query;
}
//返回影响记录数---------------------------------------------------------------------//
//如果该函数成功执行,将返回记录行数;如果失败,将返回“-1”。
function affected_rows() {
return mysql_affected_rows();
}
//返回上一个 MySQL 操作产生的文本错误信息---------------------------------------------//
function error() {
return mysql_error();
}
//返回上一个 MySQL 操作产生的文本错误信息 整数型态 ------------------------------------//
function errno() {
return intval(mysql_errno());
}
//mysql_result -- 返回结果集中的字段值---------------------------------------------//
function result($query, $row) {
$query = @mysql_result($query, $row);
return $query;
}
//mysql_num_rows -- 取得结果集中行的数目---------------------------------------------//
function num_rows($query) {
$query = mysql_num_rows($query);
return $query;
}
//mysql_num_fields -- 取得结果集中字段的数目---------------------------------------------//
function num_fields($query) {
return mysql_num_fields($query);
}
//mysql_free_result -- 释放所使用的结果内存---------------------------------------------//
function free_result($query) {
return mysql_free_result($query);
}
//mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID---------------------------------------------//
function insert_id() {
$id = mysql_insert_id();
return $id;
}
//mysql_fetch_row -- 从结果集中取得一行作为数值型数组---------------------------------------------//
function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
}
//mysql_field_name -- 取得结果中指定字段的字段名---------------------------------------------//
function field_name($query,$num=0){
return mysql_field_name($query,$num);
}
//mysql_fetch_field -- 从结果集中取得列信息并作为对象返回 $num=0 表示第一个字段-------------------------------//
function fetch_fields($query,$num=0) {
return mysql_fetch_field($query,$num);
}
//mysql_get_server_info -- 取得 MySQL 服务器信息---------------------------------------------//
function version() {
$MySqlVer = mysql_get_server_info();
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = $this->result(($this->query("SELECT VERSION()")), 0);
}
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = '0';
}
return $MySqlVer;
}
//mysql_close -- 关闭 MySQL 连接---------------------------------------------------------------------//
function close() {
return @mysql_close();
}
//异常处理函数 halt ---------------------------------------------------------------------//
function halt($mess) {
global $DataBaseBadFlag;
//$dberror = $this->error();
//$dberrno = $this->errno(); //1114人员连接上限
if ($mess=="1"){
if ($DataBaseBadFlag!=1){
echo("");
}
else{
if (!@function_exists('phpEscape')){
require("escape.php");
}
echo phpEscape("Lock = false;location.href='pagedataerr.php';");
}
exit();
}
else{
return false;
}
}
}