为什么要用pdo

网上基本上千篇一律地总结是这样子的:

1、更换数据库时取得极大便利 
在PHP4/3时代,PHP要利用php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,这其实也没什么。也就是在配置时多添句话就行了。 
可怕的是,这些扩展和各自对应的数据库打交道时,他们各自的函数有很多是不一样的。 
比如: 
PHP利用libmysql.dll和MYSQL打交道时,如果要从数据表中提取数据作为关联数组,用的是mysql_fetch_accoc,而如果要从postgre数据库取得同样的结果,你就不得不用pg_fetch_assoc。 
很简单的例子说明了很重要的问题,假如你要更换数据库类型,比如从MYSQL更换成POSTGRE,你就不得把你所有和数据库有关的程序都改一遍。这时候,你应该会明白,为什么我不用PDO?? 
2、极大提高程序运行效率 
针对上面的情况,也许你会说,我可以使用ADODB(LITE),PEAR::db来实现对不同类型数据库函数的封装啊。这样子,即使我更换数据库,也不需要修改程序。 
答:php代码的效率怎么能够和直接用C/C++写的扩展效率比较呢?根本不是一个数量级的。 

了解到上述两个原因,看起来确实是这么回事,切换不同的数据库时不用去修改代码。 运行效率虽然没体验,但是看起来也好像爱是那么回事。 只是,没提到mysql方式的bug问题。网络上查找了相关的bug记录,只有php5.3它不能解析localhost  需要换成127.0.0.1。

总之,基于上述两个原因,从此还是用pdo吧。




你可能感兴趣的:(为什么要用pdo)