ZF3:如何在 ZF3 中执行 DB fetchRow() 或 fetchAll() 或 fetchCol() 或 fetchOne()?
ZF3: How to do DB fetchRow() or fetchAll() or fetchCol() or fetchOne() in ZF3?
我用过ZF1 DB adapter,现在我正在学习ZF3,但我似乎找不到相当于:
$rows = $db->fetchAll('select * from `my_table`');
$row = $db->fetchRow('select * from `my_table` where `id` = 1');
$values = $db->fetchCol('select `my_col` from `my_table`');
$value = $db->fetchOne('select `my_col` from `my_table` where `id` = 1');
我在 ZF3 中找到的示例中提到使用 prepare 语句。那么如何在 ZF3 的 1 行中执行上述操作?
一个字:没了。现在你必须处理 ResultSet\ResultSetInterface
接口。但它是一个迭代器。你肯定不会有任何问题得到结果。
是的,它不见了。
您可以按照与 ZF1 相同的方式构建 select。我的代码示例:
// From Mapper that extends AbstractTableGateway
// and implements AdapterAwareInterface
$select = $this->getSql()->select()
->join('articles', 'article_events.article_uuid = articles.article_uuid')
->where(['articles.article_id' => $id]);
$result = $this->selectWith($select);
// $result; is fetchAll()
// $result->current(); is fetchRow() or fetchOne()
// $result->current()->col_name is fetchCol();
我用过ZF1 DB adapter,现在我正在学习ZF3,但我似乎找不到相当于:
$rows = $db->fetchAll('select * from `my_table`');
$row = $db->fetchRow('select * from `my_table` where `id` = 1');
$values = $db->fetchCol('select `my_col` from `my_table`');
$value = $db->fetchOne('select `my_col` from `my_table` where `id` = 1');
我在 ZF3 中找到的示例中提到使用 prepare 语句。那么如何在 ZF3 的 1 行中执行上述操作?
一个字:没了。现在你必须处理 ResultSet\ResultSetInterface
接口。但它是一个迭代器。你肯定不会有任何问题得到结果。
是的,它不见了。
您可以按照与 ZF1 相同的方式构建 select。我的代码示例:
// From Mapper that extends AbstractTableGateway
// and implements AdapterAwareInterface
$select = $this->getSql()->select()
->join('articles', 'article_events.article_uuid = articles.article_uuid')
->where(['articles.article_id' => $id]);
$result = $this->selectWith($select);
// $result; is fetchAll()
// $result->current(); is fetchRow() or fetchOne()
// $result->current()->col_name is fetchCol();