Php 可以将原始SQL解析为Zend\Db\SQL\Select对象吗?
有没有办法将SQL语句字符串解析为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
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会自动为您的查询添加限制