0
$db_adapter = new Zend\Db\Adapter\Adapter(array(
'driver' => 'pdo_mysql',
'database' => 'xxxx',
'username' => 'xxxx',
'password' => 'xxxx',
'hostname' => 'xxxx'
    ));

$select1 = new Zend\Db\Sql\select();
$select1-> from('states');
$select1-> columns(array('name', 'id'));
$select1-> where ->notEqualTo('name', 'Florida');
$select1-> limit(5);

echo "<br />Query: ". $select1-> getSqlString() . '<br />';
$adaptor    = new Zend\Paginator\Adapter\DbSelect($select1, $db_adapter);
echo "<br />Row count: ". $adaptor->count();

这是问题所在:我有一个名为 states 的表,其中有 73 条记录。当我运行上面的脚本时,我不断得到 73 条记录,看起来LIMIT 子句根本没有生效。我不确定我做错了什么,除非限制条款根本不起作用。这是输出:

    查询: SELECT "jb_states"."name" AS "name",
    “jb_states”。“id”作为“id”来自“jb_states”
    WHERE "name" != 'Florida' LIMIT '5'
    行数: 73 
    

Zend Framework 2.2.4版本,数据库:mysql

4

1 回答 1

3

$adaptor->count()旨在返回结果集中的总行数。它在运行查询之前删除任何限制子句以解决此问题。

于 2013-09-18T22:43:05.610 回答