+ -
当前位置:首页 → 问答吧 → 封装php操作mysql类

封装php操作mysql类

时间:2007-12-25

来源:互联网

复制PHP内容到剪贴板
PHP代码:

<?php
/*
类名称:database_control
版本号:1.0
功能:对mysql类型数据库进行sql操作。
创建人:Loster
创建时间:12-23-2007
最后修改人:Loster
最后修改时间:12-24-2007
*/
class database_control{//database_control开始
    private $host;//主机地址
    private $port;//端口号
    private $username;//用户名
    private $password;//密码
    private $dbname;//数据库名
    
    public function __construct(){//构造函数开始
        $this->host="localhost";//主机地址
        $this->port="3306";//端口地址
        $this->username="test";//用户名
        $this->password="test";//密码
        $this->dbname="test";//数据库名
    }//构造函数结束
    
    public function __construct($Re_Host,$Re_Port,$Re_Username,$Re_Passowrd,$Re_Dbname){//重载构造函数
        $this->host=$Re_Host;
        $this->port=$Re_Port;
        $this->username=$Re_Username;
        $this->passowrd=$Re_Password;
        $this->dbname=$Re_Dbname;
    }//重载构造函数结束
    
    public function __destruct(){//析构函数结束
        $this->host=null;
        $this->port=null;
        $this->username=null;
        $this->password=null;
        $this->dbname=null;
        @mysql_close();//关闭与数据库的连接,释放内存
    }//析构函数结束
    
    
    private function connectiondb(){//connectiondb开始
        $connect=null;//定义$connect变量
        $this->host=$this->host.":".$this->port;//组合主机地址和端口号
        $connect=@mysql_connect($this->host,$this->username,$this->password);//打开与mysql数据库的连接,并将返回值附给$connect
        if ($connect!=null){//判断$connect
            return $connect;//如果不等于null返回$connect
        }
        else{
            return false;//否则返回false
        }
    }//connectiondb结束
    
    private function selectdb(){//selectdb开始
        if ($this->connectiondb()!=false){//调用connectiondb(),并且判断返回值是否为false
            return (@mysql_select_db($this->dbname));//如果不为false,返回数据库选择结果
        }
        else{
            return false;//否则返回false
        }
        
    }//selectdb结束
    
    public function executesql($sql){//executesql开始
        $result=null;//定义$result变量
        $return_result=array();//定义$return_result数组变量
        $i=null;//定义$i变量
        if ($sql!=null && $this->selectdb()!=false){//如果$sql参数不为空并且调用selectdb()函数返回值不为false,if1开始
            $result=@mysql_query($sql);//进行数据库查询,并将结果保存在$result中
                if ($result==false){//如果$result值为false,if2开始
                    return false;//返回false,说明查询失败
                }//if2结束
                else{//否则,else2开始
                    if ($result==true){//if3开始,如果返回true,说明执行成功
                        return true;//返回true
                    }//if3结束
                    else{//else3开始
                        $i=0;//定义计数器变量$i=0
                        while($return_result[$i]=@mysql_fetch_array($result)){//while1开始,遍历返回结果,并将结果保存在$return_result数组中
                            $i++;//计数器累加
                        }//while1结束
                        return $return_result;//返回数组
                    }//else3结束
                }//else2结束
        }//if1结束
        else{//else1开始
            return false;
        }//else1结束
    }//executesql结束
    
}//database_ctrl结束
?>

使用:
复制PHP内容到剪贴板
PHP代码:
$mysql_class=new database_control();
$result=array();
$result=$mysql_class->executesql("select * from test");

如果需要连接其他数据库,而又不想修改代码:
复制PHP内容到剪贴板
PHP代码:
$mysql_class=new database_control("1.1.1.1","3306","test","test","test");//创建对象时重载构造函数
$result=array();
$result=$mysql_class->executesql("select * from test");

本人新手,只是对mysql的sql操作进行了简单的封装。希望对大家有用

作者: Loster   发布时间: 2007-12-24

你的构造方法怎么定义了两次啊?php好像没有这种写法的啊

作者: zig   发布时间: 2007-12-24

昵称: diego  时间: 2007-12-26 09:08
精彩,为什么不把第一个构造函数写成php4的呢?然后调用php5的构造函数,岂不是更好呢?

作者: diego   发布时间: 2007-12-26

引用:
原帖由 dongxin1390008 于 2007-12-26 10:27 发表
精彩,为什么不把第一个构造函数写成php4的呢?然后调用php5的构造函数,岂不是更好呢?
“PHP 5 引入了新的对象模型(Object Model)。完全重写了 PHP 处理对象的方式,允许更佳性能和更多特性。”

作者: dongxin1390008   发布时间: 2007-12-26

php5好像不支持重载吧

作者: fyland   发布时间: 2007-12-26

楼主测试过这段代码确实可以跑?

作者: f45828842   发布时间: 2007-12-31