Php HP数据库连接脚本的输入
我正在学习OOPHP,我只是想征求有经验的脚本编写人员的一些意见。这个脚本确实有效,但如果我从一开始就正确地学习,它会更好 这是我的connect.phpPhp HP数据库连接脚本的输入,php,database,oop,mysqli,Php,Database,Oop,Mysqli,我正在学习OOPHP,我只是想征求有经验的脚本编写人员的一些意见。这个脚本确实有效,但如果我从一开始就正确地学习,它会更好 这是我的connect.php <?php include ("classes/mysql.class.php"); $mysql = new Connect(); $mysql->mysql_Connect('localhost', 'root', 'root', 'test');?> 这是我的mysql_class.php <?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扩展的类版本 我还建议您永远不要使用@来抑制错误消息,因为如果您需要调试脚本,它将在稍后再次困扰您,并且它还会对脚本性能产生负面影响
就你的OOP方法而言,你的类是相当少的,所以还没有太多的评论。我建议您不要使用var来声明类属性,而是使用public、protected或private来设置适当的可见性。var关键字是对php4的一个回溯,可能最终会被删除。而且,它是public的别名。一般来说,您不需要公共属性,而是希望将它们设置为受保护的或私有的,并实现getter和setter以授予其他类访问权限。这样做的原因是,如果您拥有公共属性,那么没有什么可以阻止另一个piexe代码破坏对象的内部状态。封装和数据隐藏是OOP中的重要概念,因此您可能需要研究它们 我的第一条建议是不要重新发明轮子,PHP已经提供了一些内置的数据库接口对象类,如PDO或MySQLi扩展的类版本 我还建议您永远不要使用@来抑制错误消息,因为如果您需要调试脚本,它将在稍后再次困扰您,并且它还会对脚本性能产生负面影响
就你的OOP方法而言,你的类是相当少的,所以还没有太多的评论。我建议您不要使用var来声明类属性,而是使用public、protected或private来设置适当的可见性。var关键字是对php4的一个回溯,可能最终会被删除。而且,它是public的别名。一般来说,您不需要公共属性,而是希望将它们设置为受保护的或私有的,并实现getter和setter以授予其他类访问权限。这样做的原因是,如果您拥有公共属性,那么没有什么可以阻止另一个piexe代码破坏对象的内部状态。封装和数据隐藏是OOP中的重要概念,因此您可能需要研究它们 使用@来抑制错误并不是一个很好的做法。 此外,在类中使用die也是一种非常糟糕的做法(它使代码无法用phpunit进行测试),您应该使用异常 PHP已经有了一些这样管理数据库的类 既然你的类很简单,为什么不使用 Mysqli类 PDO,我推荐:
管理数据库连接。如果您想增加功能性,可以将PDO或Mysqli子类化。使用@来抑制错误并不是一个很好的做法。 此外,在类中使用die也是一种非常糟糕的做法(它使代码无法用phpunit进行测试),您应该使用异常 PHP已经有了一些这样管理数据库的类 既然你的类很简单,为什么不使用 Mysqli类 PDO,我推荐:
管理数据库连接。如果您想增加功能性,可以将PDO或Mysqli子类化。Connect对于您的类来说是一个奇怪的名称,因为它是一个非常宽泛的术语。名称应该清楚地表明正在建立数据库连接,甚至可能是MySQL连接。您应该研究异常,并使用它们,而不是死掉。也许不完全是您的问题,因为这是关于如何正确执行OO的,但是PHP有一个PDO扩展,它比默认的mysql更安全。你也应该考虑一下。就像下面的答案一样,我真的很感激你的任何意见,就像我说的,我是新来的,所以我非常感谢你的建议:)。thanksConnect对你们班来说是个奇怪的名字,因为它是一个非常宽泛的术语。名称应该清楚地表明正在建立数据库连接,甚至可能是MySQL连接。您应该研究异常,并使用它们,而不是死掉。也许不完全是您的问题,因为这是关于如何正确执行OO的,但是PHP有一个PDO扩展,它比默认的mysql更安全。你也应该考虑一下。就像下面的答案一样,我真的很感激你的任何意见,就像我说的,我是新来的,所以我非常感谢你的建议:)。谢谢,说得好,我甚至没有注意到die()的呼叫。我想补充一点,对我来说,异常在PHP中往往被过度使用。虽然我认为有些时候例外是处理事情的正确方式,但它们应该为例外情况保留。大多数合理的特殊情况都可以用普通的程序流控制结构来处理。哦,很好,我甚至没有注意到die()调用。我想补充一点,对我来说,异常在PHP中往往被过度使用。虽然我认为有些时候例外是处理事情的正确方式,但它们应该为例外情况保留。大多数合理的特殊情况都可以用正常的程序流控制结构来处理