PHP PDO设置限制和偏移量

时间:2015-04-10 10:25:44

标签: php pdo

我正在尝试在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(和驱动程序),然后其余的工作正常。

请帮忙。

谢谢!

1 个答案:

答案 0 :(得分:0)

如您所知,SQL Server有一种完全不同的“限制”方法,特别是SQL Server没有MySQL提供的“范围”能力概念,为此,您需要将查询包装在子选择中

所以...你可能正在查看一些ORM /查询构建器,这样你就可以在理论上编写查询并设置限制/范围,然后这需要一些方法来生成查询的MySQL或SQL Server版本。 / p>

以下是您希望SQL Server样式的查询示例;)Row Offset in SQL Server

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