Php Mysqli还是自定义数据库类?
我想知道是否真的需要自定义数据库类。我的意思是:我在网上看到了很多数据库抽象层和自定义数据库类。但我们为什么要重新发明轮子呢?如果我真的需要,为什么不使用mysqli原生类并扩展它呢? mysqli类是安全的、最新的和本地的。为什么人们用Php Mysqli还是自定义数据库类?,php,database,mysqli,sql-injection,Php,Database,Mysqli,Sql Injection,我想知道是否真的需要自定义数据库类。我的意思是:我在网上看到了很多数据库抽象层和自定义数据库类。但我们为什么要重新发明轮子呢?如果我真的需要,为什么不使用mysqli原生类并扩展它呢? mysqli类是安全的、最新的和本地的。为什么人们用query()方法、fetch()方法和free()方法创建自己的类,而它们已经存在? Mysqli也准备了语句,这是防止sql注入的最安全的方法之一。它使Mysqli扩展更容易使用。在MySQLi中使用准备好的语句非常麻烦,需要大量代码,而且您可能会在任何地方
query()
方法、fetch()
方法和free()
方法创建自己的类,而它们已经存在?
Mysqli也准备了语句,这是防止sql注入的最安全的方法之一。它使Mysqli扩展更容易使用。在MySQLi中使用准备好的语句非常麻烦,需要大量代码,而且您可能会在任何地方复制相同的基本代码 而使用包装器,您可以执行以下操作:
$rows = $db->Query ( '
SELECT
*
FROM
table_name
WHERE
field = ?
AND field2 = ?
',
Array (
Array ( 's', 'some val' ),
Array ( 'i', 42 )
)
);
您还可以采用面向对象的方法从数据库访问数据。e、 g.将所有数据检索封装到一个php类中。并使用mysqli模块在类函数中编写所有数据检索方法在普通SQL中,为常见的CRUD操作编写相同的重复代码是很麻烦的。看看对象关系映射程序是如何解决这个问题的:@geon:MySQLi是一个PHP扩展。为什么这比$stmt=$dbh->prepare(“插入注册表(名称,值)值(:名称,值)”要好得多$stmt->bindParam(':name',$name)$stmt->bindParam(':value',$value);因为它的代码比你发布的要多得多。是的,但也有很多灵活性。使用您的函数,您只需创建直接查询,而实际上无法使用准备好的语句(声明一个语句并多次使用它)。当然可以,这只是一个示例。在我的类
Query
实际上返回一个准备好的语句中,我还有一个GetRows
方法,它返回一个包含行的数组。所以你可以决定用哪一个。。。