php中mysql的程序和面向对象实现的差异?

时间:2013-06-22 15:14:55

标签: php mysql oop procedural-programming

在php中实现mysql时,使用面向对象方法而不是程序方法有显着差异吗?在php网站上关于mysqli_query,(http://www.php.net/manual/en/mysqli.query.php),它提供了两者的示例,我只是想知道是否存在任何显着的性能差异,或者只知道何时使用它们。

3 个答案:

答案 0 :(得分:3)

哪一个更好的答案是“它取决于”。与任何事物一样,有各种不同的方法,您还应该记住,使用对象的代码不一定是面向对象的,但仍然可以在程序上编写。同样,不使用对象的代码仍然可以模块化。

但我每次都会选择使用mysqli课程。性能没有显着差异。您可能不会意识到使用DB类(如简化多态)的一些优点,因此我使用该类的唯一参数是我更喜欢语法。但是,我可能会建议您扩展或撰写它,而不是直接使用mysqli。你只能在课堂上这样做。

class DB extends mysqli {
    public function __construct() {
        parent::__construct($_SERVER['DB_HOST'],
            $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
    }
}

这是一个非常浅薄的例子。

我上面谈到的多态性的一个例子是这样的:

class User implements DAO {
    private $db;
    public function __construct(DB $db) {
        $this->db = $db;
    }
}

//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);

顺便说一句,我明确地更喜欢PDO而不是mysqli

答案 1 :(得分:0)

由于您是实习生,因此最好找出将来维护代码的人员。

  1. 没有人在公司。如果你对此感到满意,请与OOP一起去,因为OOP是目前的做法。
  2. 内部。按照目前的做法,希望OOP

答案 2 :(得分:-4)

不,没有区别。

但是你忽略了更重要的事情:在应用程序代码中不必使用原始的mysqi API函数,既不是OOP也不是程序。

PHP用户不知道一件事:API调用不打算按原样使用。它们必须包含在某种库中。没有它,mysqli只是后面的痛苦,它需要比旧的好mysql ext多2倍的代码。

因此,如果您正在使用这样的图层,那么它确实很重要,但如果使用过程或OOP编写它并不重要。

然而,这个图书馆应该以课堂的形式建造。没有其他办法。