1

我将 Kohana 3 框架与 Mysql 存储过程一起使用。如何获取最后插入记录的 id?这是代码:

class Model_MyModel extends Kohana_Model
{
    public function insertNew($param1, $param2)
    {
        $result = $this->_db->query(Database::INSERT, 'CALL insertNew('.$param1.', '.$param2.', false)';
        return $result;
    }
    ...
    ...
}

文档说,query() 方法在执行插入查询时返回一个数组,其中包含最后一个插入 id 和受影响的行号。当我调用: print_r($result) 我得到: Array ( [0] => 0 [1] => 1 ) insert_id 键为 0,尽管我在数据库中有很多记录。我做错了什么?

4

1 回答 1

1

我认为您必须在LAST_INSERT_ID()使用过程插入后使用 SQL:

SELECT LAST_INSERT_ID() as last_insert_id FROM table_name

(在您的程序中最后定义此查询)。

这种情况下的问题是 Kohana 自动返回 mysql_insert_id 和 mysql_affected_rows 作为 Database::INSERT 的结果,因此您需要将该过程作为 SELECT 查询调用并获取它(Database::SELECT)。

于 2010-11-23T09:16:37.587 回答