PHP PDO设置限制和偏移量


PHP PDO set limit and offset

我正在尝试用PHP PDO构建一个应用程序。我需要我的查询非常通用,即同一个查询应该在任何DBMS中运行,我如何实现这一点?

例如,

MySQL-select * from emp limit 10,20

MS SQL-select * from (select *, ROW_NUMBER() as cnt from emp)x where cnt between 10 and 20(类似于此)

如何在PDO中使用通用代码实现这两个功能。所以我只需要更改dbms(和驱动程序),然后其他的事情就可以正常工作了。

请帮忙。

谢谢!

SQL Server有一种完全不同的"限制"方法,特别是SQL Server没有MySQL提供的"范围"功能,要做到这一点,您需要将查询封装在子选择中。

所以。。。您可能正在寻找一些ORM/query构建器,这样您就可以名义上编写查询并设置限制/范围,然后这将需要一些方法来生成MySQL或SQL Server版本的查询。

以下是您想要的SQL Server样式的查询示例;)SQL Server 中的行偏移量

一个好的方法是使用Doctrine和它的查询语言http://doctrine.readthedocs.org/en/latest/en/manual/dql-doctrine-query-language.html