[分享] MySQL数据库类的定义

[复制链接]
  • TA的每日心情
    开心
    2023-12-15 09:13
  • 签到天数: 55 天

    [LV.5]六品通判

    1197

    主题

    1965

    回帖

    13万

    积分

    Administrator

    分子与原子计算公式

    Rank: 9Rank: 9Rank: 9

    积分
    132061

    终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

    QQ
    发表于 2007-7-16 23:29:19 | 显示全部楼层 |阅读模式
    ??俗话说“好的开始是成功的一半”,而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”复制过去就行了。要用本文件的时候只要用语句“inslude_once("dbclass.php")”就行,具体语法在编写数据库类时已有举例,不再赘述。

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

    该用户从未签到

    0

    主题

    19

    回帖

    39

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    39
    发表于 2007-8-15 11:18:12 | 显示全部楼层
    有点看法,不错,,,,,,,,,,,,

    该用户从未签到

    105

    主题

    979

    回帖

    2503

    积分

    [INTOHARD]营长

    郴州怪老头电脑服务中心

    Rank: 6Rank: 6

    积分
    2503

    宣传大使奖新人进步奖幽默大师奖

    QQ
    发表于 2008-1-24 09:57:10 | 显示全部楼层
    用回贴来记录我数据库开始的时间(26:

    该用户从未签到

    4

    主题

    69

    回帖

    411

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    411
    发表于 2009-3-7 16:41:36 | 显示全部楼层
    不错,MySQL现在Linux平台下应用还是比较多的
    版权问题是一个因素

    该用户从未签到

    0

    主题

    45

    回帖

    36

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    36
    QQ
    发表于 2009-9-2 15:03:36 | 显示全部楼层
    详细是详细但看不懂,还是要谢谢
  • TA的每日心情
    慵懒
    2017-9-25 14:07
  • 签到天数: 74 天

    [LV.6]五品郎中

    6

    主题

    326

    回帖

    1479

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1479
    发表于 2009-9-24 18:22:06 | 显示全部楼层
    这个是否我们的版主大大准备出一本小说式的技术教材了?
  • TA的每日心情
    开心
    2012-4-26 09:43
  • 签到天数: 1 天

    [LV.1]布衣百姓

    0

    主题

    203

    回帖

    102

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    102
    发表于 2010-5-12 17:01:43 | 显示全部楼层
    还是要谢谢还是要谢谢
  • TA的每日心情
    开心
    2019-12-2 06:56
  • 签到天数: 17 天

    [LV.4]七品知县

    45

    主题

    1335

    回帖

    3万

    积分

    [INTOHARD]师长

    Rank: 10Rank: 10Rank: 10

    积分
    35984
    发表于 2010-5-13 11:58:50 | 显示全部楼层
    谢谢八喜分享经验,顶起来
  • TA的每日心情
    难过
    2013-2-14 23:23
  • 签到天数: 100 天

    [LV.6]五品郎中

    5

    主题

    1159

    回帖

    583

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    583
    发表于 2012-9-24 15:57:40 | 显示全部楼层
    好东西。。要收好
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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