Php mysql、sqlite和pgsql之间的语法差异
我正在使用PDO创建一个小型activerecord库,并计划支持MySQL、Sqlite和PgSQL 我的问题是如何确保查询字符串适用于所有适配器?大多数情况下都会有CRUD语句和一些连接等。是否有一个标准可以适用于所有这些语句 谢谢 /托拜厄斯Php mysql、sqlite和pgsql之间的语法差异,php,mysql,sqlite,postgresql,pdo,Php,Mysql,Sqlite,Postgresql,Pdo,我正在使用PDO创建一个小型activerecord库,并计划支持MySQL、Sqlite和PgSQL 我的问题是如何确保查询字符串适用于所有适配器?大多数情况下都会有CRUD语句和一些连接等。是否有一个标准可以适用于所有这些语句 谢谢 /托拜厄斯 编辑:感谢您的所有回答,但我的问题更多的是关于它们之间的SQL“语法差异。您对zend_db_adapter有一个简单的介绍-我想您想要类似的东西(我发布这篇文章只是为了看看其他人如何解决您的问题)对于这类问题,我的选择是。虽然我从未在Postgre
编辑:感谢您的所有回答,但我的问题更多的是关于它们之间的SQL“语法差异。您对zend_db_adapter有一个简单的介绍-我想您想要类似的东西(我发布这篇文章只是为了看看其他人如何解决您的问题)对于这类问题,我的选择是。虽然我从未在PostgreSQL中实际使用过它,但它只是将我的理智保存在一个与MySQL一起诞生的项目中,然后迁移到SQL Server、SQLite和SQL Server。如果您想编写自己的数据库层,我建议您:
编辑:删除了对MySQL触发器的提及,该触发器适用于5.0。当然。你总是有可能把自己的双手绑起来,用强大的Postgre创建一个糟糕的sqlite。这种方法的问题是,生成的应用程序在所有平台上都会运行得同样慢,特别是当它是一个非平凡的应用程序时。我更愿意尝试在业务层上进行抽象,并在数据访问层中尽可能利用DBMS特有的功能。@a_horse_with_no_name:对于这样的事情,我总是会做出响应,向我显示性能问题,然后我会使用switch来运行常规查询。因为数据库抽象层而担心性能在我看来是过早的优化;即使在使用抽象层时,我也可以选择运行常规查询。但外键更适合于确保数据完整性。