获取刚刚插入的ID

时间:2013-03-28 10:41:02

标签: zend-framework

我这里有多对多表,我需要刚刚插入id - BlogId。 lastInsertId()是NULL结果。有什么想法吗?

 $table = new Blog_Model_Blog_Table();
    $relTable = new Blog_Model_Relation_Table();
        $Object = $table->createRow();
        $form = new Blog_Form_Blog_Add($Object);
        if ($this->getRequest()->isPost() and $form->isValid($_POST)) {
            Blog_Model_Blog_Manager::add($Object);
            $blogId = $table->getAdapter()->lastInsertId();
            foreach ($_POST['category_id'] as $value) {
                $relTable->insert(array('id' => $blogId, 'category_id' => $value));
            }

Blog_Model_Blog_Manager:

 class Blog_Model_Blog_Manager
{
    static function add(Blog_Model_Blog_Item &$Object)
    {
        $data = array(
            'time_add'              =>  time(),
            'time_edit'             =>  time(),
            'url_keyword'           =>  Ap_Filter_Translit::asURLSegment($Object->name)
        );
        $Object->setFromArray($data)
               ->save();
    }

1 个答案:

答案 0 :(得分:1)

我使用mySql函数LAST_INSERT_ID():

$blogId = $table->fetchRow($table->select()->from($table)->columns('LAST_INSERT_ID() as idi'));