class mysqlDb { var $version = ''; var $link = null; var $querynum = 0; var $debug = array(); function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $dbcharset = '') { $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect'; if(!$this->link = @$func($dbhost, $dbuser, $dbpw, 1)) { $this->halt('Can not connect to MySQL server'); } if($this->version() > '4.1') { $serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : ''; $serverset .= $this->version() > '5.0.1' ? ($serverset ? ',' : '').'sql_mode=\'\'' : ''; $serverset && mysql_query("SET $serverset", $this->link); } $dbname && @mysql_select_db($dbname, $this->link); } function fetch_array($query, $result_type = MYSQL_ASSOC) { return mysql_fetch_array($query, $result_type); } function fetch_first($sql) { return $this->fetch_array($this->query($sql)); } function result_first($sql) { return $this->result($this->query($sql)); } function errno() { return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); } function query($sql, $type = '') { $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query'; if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { $this->halt('MySQL Query Error', $sql); } $this->querynum++; if(DEBUG) { $backtrace = $explain = array(); $lines = debug_backtrace(); foreach($lines as $row) { $backtrace = array('file' => str_replace(array(DIR_ROOT, '\\'), array('./', '/'), $row['file']), 'line' => $row['line']); if(strpos($row['file'], 'db.class.php') !== false) { continue; } elseif($row['function'] == 'query') { break; } } if(preg_match("/^select /i", $sql)) { $eq = mysql_query("explain $sql"); if($eq) { while($exp = mysql_fetch_assoc($eq)) { $explain[] = array( 'id' => $exp['id'], 'table' => $exp['table'], 'type' => $exp['type'], 'possible_keys' => $exp['possible_keys'], 'key' => $exp['key'], 'key_len' => $exp['key_len'], 'ref' => $exp['ref'], 'rows' => $exp['rows'], 'Extra' => $exp['Extra'] ); } } } $this->debug[$this->querynum] = array( 'sql' => trim(preg_replace('/\s*(SELECT|FROM|WHERE|DELETE|UPDATE|SET|INSERT INTO|REPLACE INTO|ORDER BY|GROUP BY|VALUES|LIMIT) /i', ' <b>\\1 </b>', htmlspecialchars($sql))), 'backtrace' => $backtrace, 'explain' => $explain ); } return $query; } function affected_rows() { return mysql_affected_rows($this->link); } function error() { return (($this->link) ? mysql_error($this->link) : mysql_error()); } function result($query, $row = 0) { $query = @mysql_result($query, $row); return $query; } function num_rows($query) { $query = mysql_num_rows($query); return $query; } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } function insert_id() { return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); } function fetch_row($query) { $query = mysql_fetch_row($query); return $query; } function fetch_fields($query) { return mysql_fetch_field($query); } function version() { if(empty($this->version)) { $this->version = mysql_get_server_info($this->link); } return $this->version; } function close() { return mysql_close($this->link); } function halt($message = '', $sql = '') { $timestamp = time(); $dberrno = $this->errno(); $dberror = $this->error(); $errlog = $errnos = array(); if(@$fp = fopen(DIR_DATA.'./log/dberrorlog.php', 'r')) { while((!feof($fp)) && count($errlog) < 20) { $errline = fgets($fp, 350); $log = explode("\t", $errline); if(isset($log[1]) && $timestamp - $log[1] < 86400) { $errnos[$log[1]] = $log[2]; $errlog[$log[1]] = $errline; } } fclose($fp); } if(!in_array($dberrno, $errnos)) { $errlog[$timestamp] = "<?PHP exit;?>\t$timestamp\t$dberrno\t$message\t".htmlspecialchars($sql)."\t$dberror\t\n"; @$fp = fopen(DIR_DATA.'./log/dberrorlog.php', 'w'); @flock($fp, 2); foreach(array_unique($errlog) as $dateline => $errline) { @fwrite($fp, $errline); } @fclose($fp); } } function fetch_all($sql, $id = '') { $arr = array(); $query = $this->query($sql); while($data = $this->fetch_array($query)) { $id ? $arr[$data[$id]] = $data : $arr[] = $data; } return $arr; } }
相关推荐
一个简单的工具类,导入页面后操作数据库更加方便
介绍一个直接面向对象开发很实用的一个mysql工具类,实现数据库的怎么增删改查操作。
分页类、数据库操作类、上传类的简单实现 分类类:最简单操作只需要传总条数+当前页就可以使用 数据库类:增删改查都有封装,底层采用的是PDO操作方式 上传类:很简单,自己去实践下就可以
一个MySQL增删改查工具PHP类,创建连接,编码,数据库 ,select操作查询结果一行数据或者查询结果一个数据。
12-为什么选择MySQL数据库即MySQL优势介绍.avi 13-MySQL数据库分类与版本升级知识讲解.avi 14-MySQL数据库商业版与社区版区别.avi 15-MySQL数据库的发布版本知识讲解.avi 16-MySQL数据库发展的三条产品线介绍.avi 17...
通过易语言操作MYSQL成为一个很简单的事情,但是MYSQL图形管理界面的缺失,却导致直接对MYSQL数据库的编辑、察看很困难,虽然已经有很多公司或个人制作的MYSQL图形管理界面,但是都是一些英文的...
本文实例讲述了php封装的pdo数据库操作工具类与用法。分享给大家供大家参考,具体如下: <?php header(Content-Type:text/html;charset=utf-8); class PdoMysql{ public static $config = array();//设置连接...
MySQL-Admin,网页操作数据库的另一种选择。功能类phpmyadmin
*php操作mysql的工具类 */ class Db{ private $_db = null;//数据库连接句柄 private $_table = null;//表名 private $_where = null;//where条件 private $_order = null;//order排序 private $_limit = nul
后端使用的数据库工具类、验证码类、分页类均由自己实现并封装 可通过配置文件(Base/Conf.php)对项目进行配置(数据库设置和默认路由设置) 前端大部分数据通过Ajax与后端进行交互,页面跳转较少 【备注】 主要针对...
介绍一个MySQL增删改查工具PHP类,创建连接,编码,数据库 ,select操作查询结果一行数据或者查询结果一个数据。
PDO(PHP数据对象) 是一个轻量级的、具有兼容接口的PHP数据连接拓展,是一个PHP官方的PECL库,随PHP ...由于PDO是在底层实现的统一的数据库操作接口,因而利用它能够实现更高级的数据库操作,比如存储过程的调度等。
本文实例讲述了php操作access数据库的方法。分享给大家供大家参考,具体如下: 在PHP网站开发中,PHP与Mysql是最好的组合,但是当你想将其他平台的网站移植到PHP平台时,必然遇到移植性的问题,如ASP+ACCESS平台如何...
本文实例讲述了PHP实现基于面向对象的mysqli扩展库增删改查操作工具类。分享给大家供大家参考,具体如下: mysqli扩展库是MySQL扩展... //数据库操作类 class DBUtil{ private $host=localhost; private $username=
使用语言:php mysql css html 主要功能:登录 注册 修改 删除 查询 添加 信息 适用于:新手学习 简易系统开发 环境配置: phpstudy +hbulider (其他均可) 使用说明: 1,推荐使用集成环境软件phpstudy或者...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...
2.2 MySQL数据库技术 4 2.3VUE渐进式框架 5 3 需求分析 6 3.1 需求陈述 6 3.2 可行性分析 6 3.3需求研究方法 7 3.4系统流程设计 8 3.2.2 用户登录流程 8 3.2.3 系统操作流程 9 3.2.4 添加信息流程 9 3.2.5 修改信息...
1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...