gpt4 book ai didi

zend-framework2 - ZF2 自定义查询

转载 作者:行者123 更新时间:2023-12-04 07:14:22 25 4
gpt4 key购买 nike

大家好,早上好

我正在遵循手册中 Rob Allen 的快速入门教程。我正在努力改变一些事情。我正在尝试做的一件事是获得这样的查询:

"SELECT max(id) FROM Albums";

我试过类似的东西

$this->select();
$this->columns(array('id' => 'MAX(id)'));

显然这不是这样做的方法。我可能需要一些表达式对象。

谁能告诉我如何解决这个问题?

编辑(忘记上面的)

这整个代码是基于手册(ZF2)中的快速入门我设法编写了这样的查询:

    $select = $this->getSql()->select();
$select->columns(array(new Expression('max(id) as MaxId')));
$rowset = $this->selectWith($select);
$row = $rowset->current();
return $row;

这样做的结果是一个空对象。

但是当我改变的时候

    $select->columns(array(new Expression('max(id) as MaxId')));

  $select->columns(array(new Expression('max(id) as id')));

然后我取回一个 id 为 1 的对象。这是 max(id)。

但是当我在函数 exchangeArray 中添加一行带有 maxId 的相册对象时,它会返回 maxId 字段。

但是,我不可能每次都需要这样做,我只是想做这样的查询。这真的是它的工作方式吗?

最佳答案

使用Zend\Db\Sql\Expression

因此,如果我正确地看到了这一点(可能并非如此),你会像刚才那样做,但将 SQL 表达式包装到 new Expression('max(id)) .所以应该是下面这样

use Zend\Db\Sql\Expression;
//...
$this->columns(array(
'maxid' => new Expression('max(id)')
));

如果这样的语法是错误的,请不要诅咒我,但我认为了解 Sql\Expression 已经对您有所帮助 ;)

关于zend-framework2 - ZF2 自定义查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com