从
PHP访问MysqL数据库似乎有几种方法:
Sprinkle the code with raw sql-statements Use the VO-pattern from Java (e.g. DB_DataObjects from PEAR) DIY and write a script that auto-generates one PHP class per database
除此之外,我还在.NET中阅读了LINQ,但没有看到它在PHP中实现.
还有什么其他模式?
如果你今天从头开始构建一个网站,你会选择哪一个?
澄清:这不是关于DB抽象层(PDO,MDB2).这里讨论的模式是建立在PDO或MDB2上的.
我会从PEAR中选择
MDB2 database abstraction layer,它提供了一个很好的抽象方法来处理数据库.我推荐它,因为它允许您编写可移植的代码,可以移植到不同的数据库服务器,而不需要许多更改(对于基本脚本,只需更改连接调用即可).它是旧的DB和元数据库抽象层的合并(DB仍然支持错误修复,但已被MDB2替代).
它提供了诸如为不能正常支持的DB准备执行仿真的功能,并允许您使用占位符,这是良好做法以避免sql注入问题.
它可以使用:MysqL / MysqLi,pgsql(Postgresql),oci8(Oracle),sqllite,msql,mssql(Microsoft sql Server),sybase,informix,fbsql,ibase,odbc.
看看MDB2 documentation看看它是如何工作的.