Zend_Db 来自 SQL 字符串的占位符问题

发布于 2024-11-19 21:57:29 字数 635 浏览 0 评论 0原文

我有以下 SQL

SELECT i_id AS "entity_id", "entity_1" AS "type"
FROM tbl_extensions WHERE ext = 50

,它返回结果和一个附加列“type”,其值为“entity_1”,

以获得与我尝试过的 Zend_Db 相同的结果:

$db->fetchAll($db->select()
                 ->from('tbl_extensions',
                         array('entity_id' => 'i_id',
                               'type' => 'entity_1'))
                    ->where('ext = ?', 50)));

但我有以下错误:

消息:SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“tbl_extensions.type”

看起来 Zend 尝试查找列而不是在结果中创建它。

有人可以帮我吗?

I have the following SQL

SELECT i_id AS "entity_id", "entity_1" AS "type"
FROM tbl_extensions WHERE ext = 50

which returns me the result and an additional column "type" with the value "entity_1"

to gain the same with Zend_Db I've tried:

$db->fetchAll($db->select()
                 ->from('tbl_extensions',
                         array('entity_id' => 'i_id',
                               'type' => 'entity_1'))
                    ->where('ext = ?', 50)));

But I have the following error:

Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tbl_extensions.type' in 'field list'

It looks like Zend tries to find a column instead of creating it within the result.

Could anyone help me with it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缘字诀 2024-11-26 21:57:29

最简单的解决方案是使用 Zend_Db_Expr

$db->fetchAll($db->select()
    ->from('tbl_extensions',
        array(
            'entity_id' => 'i_id',
            new Zend_Db_Expr('"entity_1" AS "type"'),
        )
    )
    ->where('ext = ?', 50));

easiest solution would be to use Zend_Db_Expr.

$db->fetchAll($db->select()
    ->from('tbl_extensions',
        array(
            'entity_id' => 'i_id',
            new Zend_Db_Expr('"entity_1" AS "type"'),
        )
    )
    ->where('ext = ?', 50));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文