首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OOP数据库连接/断开类

OOP数据库连接/断开类
EN

Stack Overflow用户
提问于 2012-03-11 07:20:02
回答 4查看 23.7K关注 0票数 4

我刚刚开始学习面向对象编程的概念,并且已经创建了一个用于连接到数据库、选择数据库和关闭数据库连接的类。到目前为止,除了关闭与数据库的连接之外,一切似乎都正常。

代码语言:javascript
复制
    class Database {

    private $host, $username, $password;
    public function __construct($ihost, $iusername, $ipassword){
        $this->host = $ihost;
        $this->username = $iusername;
        $this->password = $ipassword;
    }
    public function connectdb(){
        mysql_connect($this->host, $this->username, $this->password)
            OR die("There was a problem connecting to the database.");
        echo 'successfully connected to database<br />';
    }
    public function select($database){
        mysql_select_db($database)
            OR die("There was a problem selecting the database.");
        echo 'successfully selected database<br />';
    }
    public function disconnectdb(){
        mysql_close($this->connectdb())
            OR die("There was a problem disconnecting from the database.");
    }
}

$database = new database('localhost', 'root', 'usbw');
$database->connectdb();
$database->select('msm');
$database->disconnectdb();

当我尝试断开与数据库的连接时,收到以下错误消息:

代码语言:javascript
复制
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in F:\Programs\webserver\root\oop\oop.php on line 53

我猜这并不像将connectdb方法放在mysql_close函数的括号中那么简单,但是找不到正确的方法。

谢谢

EN

回答 4

Stack Overflow用户

发布于 2012-03-11 07:22:17

您没有从connectdb()返回任何内容,但是将此函数的返回值传递给了mysql_close()

票数 2
EN

Stack Overflow用户

发布于 2012-03-18 11:55:25

您应该知道,mysql_*函数是在PHP4中引入的,比您之前的版本还多。这个接口已经非常老了,而且这个过程已经开始实际的deprecating this extension了。

在2012年,您不应该使用mysql_*函数编写新代码。

有两个非常好的选择:PDOMySQLi。这两个工具都已经在编写面向对象代码时考虑到了,而且它们还使您能够使用prepared statements

您在用PDO编写的原始帖子中展示的示例将如下所示:

代码语言:javascript
复制
//connect to the the database
$connection = new PDO('mysql:host=localhost;dbname=msm', 'username', 'password');
//disconnects
$connection = null;

当然,还有更复杂的用例,但这是需要改进的地方。

票数 2
EN

Stack Overflow用户

发布于 2014-05-11 10:57:28

面向对象编程可以很好地与PDO和mysqli配合使用。试试看

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9651038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档