0

Zend 2.0でクエリを作成する方法は次のとおりです

$getVenues = $this->tableGateway->select(function (Select $select) {
    $select->where->greaterThanOrEqualTo('lat', (float) $lat_min);
    $select->where->greaterThanOrEqualTo('lng', (float) $lng_min);
    $select->where->lessThanOrEqualTo('lat', (float) $lat_max);
    $select->where->lessThanOrEqualTo('lng', (float) $lng_max);
});

次のクエリを出力しています:

SELECT `venues`.* FROM `venues` WHERE `lat` >= :where1 AND `lng` >= :where2 AND `lat` <= :where3 AND `lng` <= :where4

それぞれのパラメーターを:where*入力すると、次のようになります。

SELECT `venues`.* FROM `venues` WHERE `lat` >= 39.730387437667 AND `lng` >= -86.332592054637 AND `lat` <= 40.020242510131 AND `lng` <= -85.954901904578

phpMyAdmin で生の SQL クエリを実行すると正しい結果が返されますが、Zend 2.0 クエリは 0 行を返します。

以下は、var_dumpZend からのクエリ結果セットの 1 つです。

object(Zend\Db\ResultSet\ResultSet)#227 (8) {
  ["allowedReturnTypes":protected]=>
  array(2) {
    [0]=>
    string(11) "arrayobject"
    [1]=>
    string(5) "array"
  }
  ["arrayObjectPrototype":protected]=>
  object(Application\Model\Venue)#208 (12) {
    ["id"]=>NULL
    ["fsq_venue_id"]=>NULL
    ["name"]=>NULL
    ["address"]=>NULL
    ["city"]=>NULL
    ["state"]=>NULL
    ["zip"]=>NULL
    ["country"]=>NULL
    ["cross_street"]=>NULL
    ["lat"]=>NULL
    ["lng"]=>NULL
    ["updated_at"]=>NULL
  }
  ["returnType":protected]=>
  string(11) "arrayobject"
  ["buffer":protected]=>
  NULL
  ["count":protected]=>
  int(0)
  ["dataSource":protected]=>
  object(Zend\Db\Adapter\Driver\Pdo\Result)#214 (8) {
    ["statementMode":protected]=>
    string(7) "forward"
    ["resource":protected]=>
    object(PDOStatement)#215 (1) {
      ["queryString"]=>
      string(117) "SELECT `venues`.* FROM `venues` WHERE `lat` >= :where1 AND `lng` >= :where2 AND `lat` <= :where3 AND `lng` <= :where4"
    }
    ["options":protected]=>
    NULL
    ["currentComplete":protected]=>
    bool(false)
    ["currentData":protected]=>
    NULL
    ["position":protected]=>
    int(-1)
    ["generatedValue":protected]=>
    string(1) "0"
    ["rowCount":protected]=>
    int(0)
  }
  ["fieldCount":protected]=>
  int(12)
  ["position":protected]=>
  NULL
}
4

1 に答える 1

0

変数はクロージャーコンテキストで設定されていません

于 2013-02-01T17:20:06.067 に答える