通过功能与对象访问数据库,区别?

时间:2010-06-20 14:04:32

标签: php mysql oop pdo

  

可能重复:
  PHP PDO vs normal mysql_connect

因此,在我的应用程序中,我通过名为db_connect();的函数访问了数据库。很简单,它提供了必要的登录信息,并通过mysql_connect和mysql_select_db打开了数据库连接。

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

那么以我以前的方式执行它,或者使用自动连接到数据库的构造函数编写类“db”之间的区别是什么?

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

它是一个花哨的库来抽象出数据库连接的细节吗?

我唯一能想到的是OO版本中有一个析构函数,这意味着我不必编写“db_close()”...

爱德华 - 我是谁! (Please'm)

1 个答案:

答案 0 :(得分:4)

您的数据库库是功能性还是面向对象本身并不是真正相关,但PDO非常现代,并且与普通的mysql_connect()和consorts相比具有许多优势,最重要的是参数化查询使SQL注入无法实现

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

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

如果我要为新项目选择数据库包装器,我肯定会使用mysql_*()上的PDO。