【问题标题】:ZF2: How to do this simple query with Zend\DbZF2:如何使用 Zend\Db 进行这个简单的查询
【发布时间】:2013-12-02 04:21:37
【问题描述】:

我有以下语句,但它们返回一个空结果集:

    $sql = 'SELECT * FROM `industry` WHERE `code` LIKE ?';
    $statement = $this->getAdapter()->createStatement($sql, array('A_'));
    $statement->execute();

我做错了什么?我真的不想使用 Zend\Db\Sql\Sql,因为它非常冗长。

关于相关点,我可以去哪里找到更多关于 Zend\Db 操作理论的信息?这绝对令人抓狂。为什么有时会返回驱动程序结果?有时是一个结果集?怎么查看完整的SQL(引用后,执行前?)等等...

【问题讨论】:

    标签: zend-framework2 zend-db


    【解决方案1】:

    好的,我错过了 Result 是可迭代的(以及 ResultSet)这一事实。因此,将 $statement->execute() 的结果赋值给一个变量,然后迭代该变量,问题就解决了。

    此外,您可以在结果对象上调用getResource(),并从那里访问底层对象(在本例中为 PDO 语句)。这意味着你可以做类似result->getResource()->fetchAll();

    【讨论】:

      【解决方案2】:

      试试这个查询。

      use Zend\Db\TableGateway\TableGateway;
      use Zend\Db\Sql\Sql;
      
          class tableNameTable
          {
      
              protected $tableGateway;
      
              public function __construct(TableGateway $tableGateway)
              {
                  $this->tableGateway = $tableGateway;
              }
      
              Publice function getIndustry(){
                  $adapter = $this->tableGateway->getAdapter();
                  $statement = $adapter->query("Your Query");
                  $results = $statement->execute();
      
                  return $results;
             }
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        相关资源
        最近更新 更多