我正在使用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) 我越来越: 排列 ( [0] => 0 [1] => 1 ) insert_id键为0,但我在db中有很多记录。 我做错了什么?
答案 0 :(得分:1)
我认为在使用过程插入后你将不得不使用SQL LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID() as last_insert_id FROM table_name
(在你的程序中最后定义这个查询)。
这种情况下的问题是Kohana会自动返回mysql_insert_id和mysql_affected_rows作为Database :: INSERT的结果,因此您需要将该过程作为SELECT查询调用并获取它(Database :: SELECT)。