日期:2014-05-16 浏览次数:20502 次
?
开发PHP系统过程中,对数据库(mysql)的访问操作绝对免不了。
今天来介绍一个简单的数据库工具类class.mysql.php。
?
首先我们要有一个配置文件,用来存放连接数据库的各种信息和一些基本信息。
于是有了config.inc.php
?
// 定义数据库服务器 define('DB_SERVER', "localhost"); // 定义数据库登录名 define('DB_USER', "root"); // 定义数据库登录密码 define('DB_PWD', null); // 定义数据库名称 define('DB_DATABASE', "username_mydata"); /* 为了更高效的开发,推荐以下做法 1. 定义表的前缀 2. 用全局变量定义数据库表名 */ define('TABLE_PRE', "stuot_"); define('TABLE_USERS', "users"); define('TABLE_NEWS', "news");
注:用全局变量定义数据库表名可以方便系统的维护,因为一旦需要修改表名,只需要修改定义的内容就全局可以应用了。
?
接下来,我们来使用轻盈快捷的数据库工具类class.mysql.php
首先在php文件头,我们需要初始化数据库
?
require("config.inc.php"); require("mysql.class.php"); // 这里定义文件名,看自己习惯吧 $db = new Database(DB_SERVER, DB_USER, DB_PWD, DB_DATABASE);
?
接下来介绍一下Mysql类
?
1. 变量
?
var $server = ""; //数据库服务器 var $user = ""; //数据库登录用户名 var $pass = ""; //数据库登录用户密码 var $database = ""; //数据库名称 var $pre = ""; //表前缀 var $error = ""; //错误信息 var $errno = 0; //错误代码 //SQL查询后影响的行数 var $affected_rows = 0; var $link_id = 0; var $query_id = 0;
?
?
2. 构造函数(php当中还是用“函数”比“方法”好)
?
function Mysql($server, $user, $pass, $database, $pre=''){ $this->server=$server; $this->user=$user; $this->pass=$pass; $this->database=$database; $this->pre=$pre; }
?
?
3. 连接数据库函数connect($new_link=false)
当以connect(true)调用的时候,将强制要求建立一个新的link,哪怕是之前已经以同样的参数调用了mysql_connect()。
?
function connect($new_link=false) { $this->link_id=@mysql_connect($this->server,$this->user,$this->pass,$new_link); if (!$this->link_id) {//建立连接失败 $this->oops("Could not connect to server: <b>$this->server</b>."); } if(!@mysql_select_db($this->database, $this->link_id)) {//连接数据库失败 $this->oops("Could not open database: <b>$this->database</b>."); } // 回收变量 $this->server=''; $this->user=''; $this->pass=''; $this->database=''; }
洋人写东西就是好玩,oops函数是显示错误信息函数,将在下面介绍。
?
4. 获取所有结果
# Desc: 返回所有结果 # param: SQL SELECT语句 # returns: assoc array of ALL fetched results function fetch_all_array($sql) { $query_id = $this->query($sql); $out = array(); while ($row = $this->fetch_array($query_id)){ $out[] = $row; } $this->free_result($query_id); return $out; }
?
PHP开发当中结果的分页显示免不了,这个工具类在这方面有待改进。
?
& PHP OOP?? SCREW U!!