Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HP数据库连接脚本的输入_Php_Database_Oop_Mysqli - Fatal编程技术网

Php HP数据库连接脚本的输入

Php 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

我正在学习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扩展的类版本

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


就你的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中往往被过度使用。虽然我认为有些时候例外是处理事情的正确方式,但它们应该为例外情况保留。大多数合理的特殊情况都可以用正常的程序流控制结构来处理