创建两个类 db 和 query ,文件名为:mysql.php
类db主要负责数据库的连接与关闭
类query主要对表的操作,包括:返回查询结果、返回结果的行数、返回当前行或$row指定行的 $field 字段的值、返回错误报告
<?PHP
if ( !defined( "_DB_LAYER" ) ){
define("_DB_LAYER", 1 );
if(!function_exists("mysql_connect"))
echo "<b>警告: 这台服务器不支持Mysql.</b>";
class db {
var $connect_id;
var $type;
var $database;
function db($database_type="mysql") {
$this->type=$database_type;
}
//$database 数据库名
//$host 主机名
//$user 数据库用户名
//$password 密码
function open($database, $host, $user, $password) {
if(empty($user)){
$this->connect_id=@mysql_pconnect();
}
else{
$this->connect_id=@mysql_pconnect($host, $user, $password);
}
if ($this->connect_id) {
$this->database=$database;
return $this->connect_id;
}
else{
return 0;
}
}
function lastid(){
return mysql_insert_id();
}
function close() {
// 关闭数据库连接
if ($this->query_id && is_array($this->query_id)) {
while (list($key,$val)=each($this->query_id)) {
@mysql_free_result($val);
}
}
$result=@mysql_close($this->connect_id);
return $result;
}
};
/************************************** QUERY ***************************/
class query {
var $result;
var $row;
function query(&$db, $query="") {
if($query!=""){
$this->result=@mysql_db_query($db->database, $query, $db->connect_id);
return $this->result;
}
}
function getrow() {
//返回查询结果
$this->row=@mysql_fetch_array($this->result);
return $this->row;
}
function numrows() {
// 返回结果的行数
$result=@mysql_num_rows($this->result);
return $result;
}
function error() {
// 返回错误报告
$result=@mysql_error();
return $result;
}
function field($field, $row="-1") {
// 返回当前行或$row指定行的 $field 字段的值
if($row!=-1){
$result=@mysql_result($this->result, $row, $field);
}
else{
$result=$this->row[$field];
}
if(isset($result)){
return $result;
}
else{
return '0';
}
}
function firstrow() {
// 将指针返回到第一行
$result=@mysql_data_seek($this->result,0);
if($result){
$result=$this->getrow();
return $this->row;
}
else{
return 0;
}
}
function seek($row){
@mysql_data_seek($this->result, $row);
}
function free() {
// 释放传回值占用的内存
return @mysql_free_result($this->result);
}
}; // End class
}
?>
使用举例:
以下是使用方法之一,查询结果将保存在数组变量 $result 。
<?PHP
include "./mysql.php";
$sSQL="Select id [, name ...] from (table) where (...)";
$q->query($DB, $sSQL);
while($rec=$q->getrow()){
$result[]=$rec; //将$rec(数组)赋给变量$result[], 即$result[0],$result[1], ... 为查询结果;
//...
$q->query($DB, $sSQL);
}
?>
各位网友如有兴趣,query类的内容还可以继续丰富。
(以上代码在使用前需要做适当修改)
|