2010-06-20 46 views
1

可能重复:
PHP PDO vs normal mysql_connect通过函数vs对象访问数据库,区别?

所以在我的申请,我通过一个函数命名db_connect访问数据库();.很简单,它提供了必要的登录信息,并通过mysql_connect和mysql_select_db打开了一个数据库连接。

现在我工作了,我发现领导程序员使用PDO。花式。但是,它看起来或多或少像我以前使用的同一事物的面向对象版本。

那么按照我以前的方式进行操作,或者使用自动连接到数据库的构造函数编写类“db”,有什么区别?

在这两种情况下,我都必须连接到db /创建一个新的对象,无论哪种情况,它都占用一行。

抽象出数据库连接的本质是一个花哨的库吗?

我能想到的唯一的事情是,有于二OO版本的析构函数,这意味着我不会有在编写“db_close()” ......

埃杜-MA-指示泄我! (Please'm)

回答

4

无论您的数据库库是功能性还是面向对象本身都不是真正相关的,但PDO非常现代化,并且与简单的旧的mysql_connect()和配合体相比具有许多优势,最重要的是使参数化查询注射不可能。

此外,PDO支持a whole lot more database platforms

从架构的角度来看,OOP方法也很有意义,它不仅仅是装饰:您创建一个PDO对象,这是您的数据库连接。多个对象=多个连接。将结果集包装到一个对象中 - 提供所有函数来获取行,跳过,倒带等......也是非常合乎逻辑的。

如果我要为一个新项目选择一个数据库包装,我肯定会通过mysql_*()与PDO一起去。

+0

感谢您的想法,Pekka :) – 2010-06-20 14:33:59

+0

+1 PDO绝对是您的选择。有更多的学习曲线在mysql _ *()上,但是如果没有其他的参数化查询,它是值得的。 – 2010-06-20 14:38:30