MySQL与PDO

我对PHP相当陌生,并且使用标准的MySQL数据库调用构build了一个中等大小的网站。 不过,我最近才了解到PDO,我希望能从社区中找出是否值得从MySQL切换到PDO。 为了安全,我一直在使用mysql_real_escape_string

有关该网站的信息:
我正在使用INSERTSELECT调用的混合。 从SELECT调用返回的数据不是很大(使用LIMIT返回不超过30条logging)。 也不会有很多INSERT的。 该网站目前没有生效,所以现在做出改变是很容易的。

在您的专业意见中,是否值得我的时间从MySQL切换到PDO网站? 还是留在MySQL一样好? 或者换句话说,如果现在改用PDO,原因是什么?

与mysql_ *函数相比,PDO具有以下优点:

  • 它是跨数据库,意味着它是不同关系数据库的相同接口。
  • 它有助于防止SQL注入。
  • 它更清洁(使用面向对象的方法)。

这个问题之前已经被问过了,你可能想看看答案:

  • 从mysql到mysqli或pdo?
  • mysqli或PDO – 有什么优点和缺点?

如果您正在开始一个新项目,我会严格build议使用PDO或更高级别的库/ ORM。 如果你已经有很多没有它的代码,这可能不值得。

PDO具有上面链接到的页面上列出的优点:数据库抽象(即,您的代码可以在各种types的数据库中移植),如果您使用其准备好的语句特性,则可以处理大量常见的安全问题它将结果作为Class实例返回(它本身可以通过鼓励面向对象的方法大大改进你的代码),等等。

然而,最好的方法就是查看一个ORM库,比如Doctrine。 考虑到你的项目的规模可能看起来过大,但坦率地说,开始学习最佳实践永远不会太早。 关于如何构buildZend框架的首席开发人员给出的防弹,可维护的数据库驱动应用的一个很好的概述可以在http://mtadata.s3.amazonaws.com/webcasts/20090724-playdoh.wmv