首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend 2 PostgreSQL lastInsertValue返回null

问Zend 2 PostgreSQL lastInsertValue返回null
EN

Stack Overflow用户
提问于 2015-02-16 12:54:13
回答 1查看 589关注 0票数 1

我有向表中插入数据的代码。这是我的代码:

代码语言:javascript
复制
public function createPage(Pages $page)
    {
        $data = array(
            'page_name' => $page->page_name,
            'parent_page_id' => $page->parent_page_id,
            'category' => $page->category,
            'create_date' => $page->create_date,
        );

        try {
           $id = $this->tableGateway->insert($data);
           $id = $this->tableGateway->lastInsertValue;
        } catch (Exception $ex) {
            throw new Exception($ex->getMessage());
        }

        return $id;
    }

当我使用MySql时,我已经得到了行的id,但是对于PostgreSQL,我得到了null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 16:18:25

是,

代码语言:javascript
复制
$id = $this->tableGateway->getAdapter()->getDriver()->getLastGeneratedValue("sequence_name");

或

代码语言:javascript
复制
$id = $this->tableGateway->getAdapter()->getConnection()->getLastGeneratedValue

取决于您的zf2版本。

但是,Postgresql和使用本机PDO类的MySql之间有一些不同,zf2封装并提供了tableGateway。

对于本机php PDO,您可能需要执行以下操作:

代码语言:javascript
复制
"INSERT INTO tbl_table (table_name) values ('foo') RETURNING table_id;"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28541868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档