找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 795|回复: 10

[【求助】] MySQL数据库类的定义

[复制链接]
发表于 2005-7-19 20:43:23 | 显示全部楼层 |阅读模式
俗话说“好的开始是成功的一半”,而PHP+MySQL项目中数据库的操作是重点之一,能否简化数据库操作程序的编写,就成了影响工作效率的关键之一。

??所以小阳并不是一开始就做页面,而是先建立一个“dbclass.php”文件,开始编写操作MySQL数据库的类“dbClass”。即在“dbclass.php”中编写以下程序:


<? php

$db_username=\"myusername\"; //连接数据库的用户名
$db_password=\"mypassword\"; //连接数据库的密码
$db_database=\"mydatabase\"; //数据库名
$db_hostname=\"localhost\"; //服务器地址

class dbClass{ //开始数据库类
var $username;
var $password;
var $database;
var $hostname;
var $link;
var $result;

function dbClass($username,$password,$database,$hostname=\"localhost\"){
$this->username=$username;
$this->password=$password;
$this->database=$database;
$this->hostname=$hostname;
}
function connect(){ //这个函数用于连接数据库
$this->link=mysql_connect($this->hostname,$this->username,$this->password) or die(\"Sorry,can not connect to database\");
return $this->link;
}
function select(){ //这个函数用于选择数据库
mysql_select_db($this->database,$this->link);
}

function query($sql){ //这个函数用于送出查询语句并返回结果,常用。
if($this->result=mysql_query($sql,$this->link)) return $this->result;
else {
//这里是显示SQL语句的错误信息,主要是设计阶段用于提示。正式运行阶段可将下面这句注释掉。
echo \"SQL语句错误: <font color=red>$sql</font> <BR><BR>错误信息: \".mysql_error();
return false;
}
}
/*
??以下函数用于从结果取回数组,一般与 while()循环、$db->query($sql) 配合使用,例如:
$result=query(\"select * from mytable\");
while($row=$db->getarray($result)){
echo \"$row[id] \";
}
*/
function getarray($result){
return @mysql_fetch_array($result);
}

/*
??以下函数用于取得SQL查询的第一行,一般用于查询符合条件的行是否存在,例如:
??用户从表单提交的用户名$username、密码$password是否在用户表“user”中,并返回其相应的数组:
if($user=$db->getfirst(\"select * from user where username='$username' and password='$password' \"))
echo \"欢迎 $username ,您的ID是 $user[id] 。\";
else
echo \"用户名或密码错误!\";
*/
function getfirst($sql){
return @mysql_fetch_array($this->query($sql));
}

/*
??以下函数返回符合查询条件的总行数,例如用于分页的计算等要用到,例如:
$totlerows=$db->getcount(\"select * from mytable\");
echo \"共有 $totlerows 条信息。\";
*/
function getcount($sql){
return @mysql_num_rows($this->query($sql));
}

/*
??以下函数用于更新数据库,例如用户更改密码:
$db->update(\"update user set password='$new_password' where userid='$userid' \");
*/
function update($sql){
return $this->query($sql);
}

/*
??以下函数用于向数据库插入一行,例如添加一个用户:
$db->insert(\"insert into user (userid,username,password) values (null,'$username','$password')\");
*/
function insert($sql){
return $this->query($sql);
}

function getid(){ //这个函数用于取得刚插入行的id
return mysql_insert_id();
}
}

/*
??主要函数就是这些,如果你自己有另外的需要,也可以自己添加上去。
??因为凡使用该类的都必须连接数据库,下面就连接并选择好数据库吧:
*/
$db=new dbClass(\"$db_username\",\"$db_password\",\"$db_database\",\"$db_hostname\");
$db->connect();
$db->select();

?>

??OK,数据库的类已经写好了,它不但可以用在目前这个项目中,其他项目的同样适用!只要把“dbclass.php”复制过去就行了。要用本文件的时候只要用语句“include_once(\"dbclass.php\")”就行,具体语法在编写数据库类时已有举例,不再赘述。

??写好数据库的类后,数据库的操作就方便多了,项目的制作已跨出了重要的第一步。
回复

使用道具 举报

发表于 2005-7-19 20:44:51 | 显示全部楼层
楼猪咋每次都搞这么深奥的东东?


不大懂的说...
回复

使用道具 举报

 楼主| 发表于 2005-7-19 20:54:44 | 显示全部楼层
不深奥的东西那里会送威望啊!!唉!
  [fly][glow=255,bule,1]麦兜故事-仲有最靓既猪腩肉-麦兜菠萝油王子 电影原声[/glow][/fly]
回复

使用道具 举报

发表于 2005-7-19 22:13:34 | 显示全部楼层
我在google里面搜索到了7篇相同的文章,以下是其中一篇
http://www.ddvip.net/database/mysql/index2/183.htm
请跟帖解释或者PM我,冒充原创将受到扣分处罚
回复

使用道具 举报

 楼主| 发表于 2005-7-19 22:30:13 | 显示全部楼层
不是吧~我好象写的是转贴吧!!
回复

使用道具 举报

发表于 2005-7-19 22:33:58 | 显示全部楼层
帖子分类你选择的是原创啊
回复

使用道具 举报

 楼主| 发表于 2005-7-19 22:34:44 | 显示全部楼层
失误啊~望斑竹谅解~
回复

使用道具 举报

 楼主| 发表于 2005-7-19 22:37:09 | 显示全部楼层
我下面也有一条~是和这条在一个网站里找的~可能是我在选转贴的时候不小心碰到鼠标的滚动建了!一下换过来了!我很喜欢用滚动建往下翻的!
回复

使用道具 举报

发表于 2005-7-19 22:38:49 | 显示全部楼层
看在新人的份上,这次改过来以后不作追究,下次注意
回复

使用道具 举报

 楼主| 发表于 2005-7-19 22:40:19 | 显示全部楼层
恩~是在编辑里面改吗??
回复

使用道具 举报

发表于 2005-7-19 22:42:01 | 显示全部楼层
嗯,我看到改过来了,下次注意
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-19 07:23 , Processed in 0.225004 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表