Php Zend DB与nextval()的Postgres问题

Php Zend DB与nextval()的Postgres问题,php,zend-framework,postgresql,zend-db,nextval,Php,Zend Framework,Postgresql,Zend Db,Nextval,好的,这是一个由两部分组成的问题,第一个主要问题是nextval()位。我有一个表,其中一列是自动递增列。对于postgres和Zend DB来说,我是个新手,现在遇到了麻烦。在表中插入新行 这就是我到目前为止所做的(在CLI中,这是可行的)。但不是在Zend DB的东西里 class Comments extends Zend_Db_Table_Abstract { protected $_name = 'comments'; public function setComm

好的,这是一个由两部分组成的问题,第一个主要问题是
nextval()
位。我有一个表,其中一列是自动递增列。对于postgres和Zend DB来说,我是个新手,现在遇到了麻烦。在表中插入新行

这就是我到目前为止所做的(在CLI中,这是可行的)。但不是在Zend DB的东西里

class Comments extends Zend_Db_Table_Abstract
{

    protected $_name = 'comments';

    public function setComment($comment_id = null, $id = null, $comment = null)
    {
        if(($comment_id == null)||(empty($comment_id))||(trim($comment_id) == '')){return false;}
        if(($id == null)||(empty($id))||(trim($id) == '')){return false;}
        if(($comment == null)||(empty($comment))||(trim($comment) == '')){return false;}

        echo 'check one';

        $db = Zend_Db_Table::getDefaultAdapter();
        if($comment_id == "none")
        {
            $created = time()*1000;
            $data = array(
                        "comment_id" => nextval('comments_comment_id_seq'),
                        "comment" => $comment,
                        "comment_level" => 1,
                        "is_active" => true,
                        "status" => 0,
                        "id" => $id,
                        "user_id" => $_SESSION['role']['user_id'],
                        "ts_create" => $created,
                        "ts_mod" => $created
                    );
            $table->insert($data);
            return true;
        }

    }
}
我得到的错误是:

致命错误:在中调用未定义的函数nextval() /home/src/branchs/portal/application/model/Comments.php 在线45

所以我真的不知道该如何调整。我更熟悉mySQL,我可以直接删除
NULL
,它会自动递增。所以总的来说,最大的问题是nextval,Zend DB的框架中有什么我可以解决这个问题的吗

下一部分,因为这是一个由两部分组成的问题。使用
$table->insert($data)
是否将自动使用
$\u name
变量?我通读了Zend doc中关于这个主题的内容,但目前我有点困惑,因为在插入的情况下如何定义正确的表。

使用以下方法:

"comment_id" => new Zend_Db_Expr("nextval('comments_comment_id_seq')"),

没有名为
nextval的php函数
是的,我知道nextval没有php函数。但是有了postgres,就有了。所以调用postgres函数,而不是php的;-)好的,所以我得到的错误现在已经消失了,我很感激。我不知道你在哪里找到的,但是,太棒了。现在,我想知道问题的第二部分,插入部分似乎是正确的,但失败的地方。有什么想法吗?@chris:如果你先试试看怎么办?我有,我得到了一个未定义的错误我猜$table是未定义的位,正如我所说的,插入/更新的东西让我有点与Zend DB的东西混淆了。这可能是我第一次认真尝试将ORM层用于SQL相关的东西。所以在我理解之前,我有点偏离了我的游戏better@chris:实际错误是什么?猜测是一件很酷的事情,但是程序员使用factsoverall工作。我刚刚成功插入了第一个,现在进入更新部分。无论如何,我感谢你的帮助。