输入OOPHP数据库连接脚本



我正在学习OOPHP,我只是想问一些有经验的脚本编写人员的输入。这个脚本确实可以工作,但如果我从一开始就学习它会更好。

这是我的connect。php

<?php
include ("classes/mysql.class.php");
$mysql = new Connect(); 
$mysql->mysql_Connect('localhost', 'root', 'root', 'test');?>
这是我的mysql_class。php
<?php
class Connect {
    var $serverhost, $username, $password, $db_name;
    public function mysql_Connect($host, $user, $pass, $db) {
        $this->serverhost = $host;
        $this->username = $user;
        $this->password = $pass;
        $this->db_name = $db;
        @mysql_connect($this->serverhost, $this->username, $this->password) or die("Kan geen verbinding maken met de database!");
        @mysql_select_db($this->db_name) or die("Kan geen verbinding maken met de geselecteerde database naam");
    }
}?>

当然欢迎任何评论!

我的第一个建议是不要重新发明轮子,PHP已经提供了一些内置的数据库接口对象类,如PDO,或MySQLi扩展的类版本。

我还建议您不要使用@来抑制错误消息,因为如果您需要调试脚本,它会回来困扰您,并且它还会对脚本性能产生负面影响。

就你的面向对象方法而言,你的类相当小,所以还没有太多可评论的。我建议你不要使用var来声明你的类属性,而是使用public、protected或private来设置适当的可见性。var关键字是PHP 4的回归,最终可能会被删除。而且,它是public的别名。作为一般的经验法则,您不需要公共属性,您希望使它们受保护或私有,并实现getter和setter来给其他类访问。这样做的原因是,如果你有公共属性,没有什么可以阻止其他代码搞砸你的对象的内部状态。封装和数据隐藏是OOP中的重要概念,因此您可能希望了解它们。

使用@来抑制错误并不是一个很好的实践。此外,在类中使用die也是一种非常糟糕的做法(它使代码无法使用phpunit进行测试),您应该使用Exceptions来代替

http://www.php.net/manual/en/language.exceptions.php

PHP已经有了这样管理数据库的类。

既然你的类真的很简单,为什么不用

呢?

Mysqli类http://www.php.net/manual/en/class.mysqli.php

PDO我推荐:http://ca2.php.net/manual/en/class.pdo.php

管理数据库连接。如果你想添加功能,你可以子类化PDO或Mysqli。

最新更新