Php 可以将原始SQL解析为Zend\Db\SQL\Select对象吗?

Php 可以将原始SQL解析为Zend\Db\SQL\Select对象吗?,php,zend-framework2,Php,Zend Framework2,有没有办法将SQL语句字符串解析为Zend\Db\SQL\Select对象 大致如下: $sql = 'SELECT * FROM table WHERE col1 = "x"'; $select = new Select(); $select->parseSql($sql); 我对此有很多用途,基本上在执行原始SQL语句时保持使用Select对象,例如传递到Zend\Paginator\Adapter\DbSelect,而不必编写自定义Zend\Paginator\Adapter\Db

有没有办法将SQL语句字符串解析为
Zend\Db\SQL\Select
对象

大致如下:

$sql = 'SELECT * FROM table WHERE col1 = "x"';
$select = new Select();
$select->parseSql($sql);

我对此有很多用途,基本上在执行原始SQL语句时保持使用
Select
对象,例如传递到
Zend\Paginator\Adapter\DbSelect
,而不必编写自定义
Zend\Paginator\Adapter\DbSelect
类。

通过twitter响应得到一个答案,特定于
Paginator
用例:

$resultSet = iterator_to_array($adapter->query($sql_statement)->execute());
$iteratorAdapter = new ArrayAdapter($resultSet);
$paginator = new Paginator($iteratorAdapter);

如果您是从海量数据中搜索,则没有任何好处。在每个页面上,它都会发送所有数据,尽管您只能在页面上看到部分数据。在每个页面上,您都将执行类似于“select*from table_name”的操作,它不会为您的查询添加限制,而在使用DbSelect适配器时,Paginator会自动为您的查询添加限制