Mysqli还是自定义数据库类?

时间:2010-11-20 11:23:22

标签: php database mysqli sql-injection

我想知道是否真的需要自定义数据库类。我的意思是:我在网上看到了很多数据库抽象层和自定义数据库类。但是我们为什么要重新发明轮子呢?为什么我不应该只使用mysqli本机类并在我真正需要时扩展它? mysqli类是安全的,最新的和原生的。为什么人们在已经存在的情况下使用query()方法,fetch()方法和free()方法创建自己的类? Mysqli也准备了语句,这是保持sql注入的最安全的方法之一。

3 个答案:

答案 0 :(得分:1)

它使得使用MySQLi扩展更容易。在MySQLi中使用准备好的语句非常麻烦并且需要大量代码,并且您可以在任何地方复制相同的基本代码。

然而,使用包装器,您可以执行以下操作:

$rows = $db->Query ( '
  SELECT
    *
  FROM
    table_name
  WHERE
    field = ?
    AND field2 = ?
  ',
  Array (
    Array ( 's', 'some val' ),
    Array ( 'i', 42 )
  )
);

答案 1 :(得分:0)

您也可以采用面向对象的方法来访问数据库中的数据。例如将所有数据检索封装到php类中。并使用mysqli模块

在类函数中编写所有数据检索方法

答案 2 :(得分:0)

在普通的SQL中,为常见的CRUD操作编写相同的重复代码是很麻烦的。了解对象关系映射器如何解决此问题:Good PHP ORM Library?