【发布时间】:2012-09-24 22:50:16
【问题描述】:
好的,这是一个两部分的问题,首先主要关注的是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() in /home/src/branches/portal/application/model/Comments.php 在线 45
所以不太确定如何调整。我更熟悉 mySQL,我可以删除NULL,它会自动递增。所以总而言之,最大的问题是 nextval,Zend DB 在框架中有什么可以解决这个问题的吗?
下一部分,因为这是一个两部分的问题。通过使用$table->insert($data); 会自动使用$_name 变量吗?我阅读了有关该主题的 Zend 文档,但目前它让我有点困惑,因为如何在插入的情况下定义正确的表。
【问题讨论】:
-
没有名为
nextval的php函数 -
是的,我知道没有 php 函数 nextval。但是有 postgres。
-
所以调用 postgres 函数,而不是 php 的函数 ;-)
标签: php zend-framework postgresql zend-db nextval