日期:2014-05-16  浏览次数:20508 次

PHP数据库工具类class.mysql.php

?

开发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!!