如何从codeigniter中的过程中查找最后插入的值

时间:2016-01-07 17:49:57

标签: codeigniter stored-procedures

我正在尝试获取最后插入的值,但我收到错误:

  

“PROCEDURE hssl.insert_brouchermaster的参数数量不正确;预计2,得到3”

程序

BEGIN
INSERT INTO `brouchermaster`(`broucher_name`,`order_number`) VALUES (brouchername,orderno,NOW());
SET @inserted_instance_id = LAST_INSERT_ID();
END

型号:

$insert_result = $this->db->query("CALL insert_brouchermaster('".$broucher_name."', '".$order_number."', @inserted_instance_id)");
$last_insert_query = $this->db->query("SELECT @inserted_instance_id");

1 个答案:

答案 0 :(得分:1)

CI函数db->query('your query here')返回true或false,因此它不会为您返回@inserted_instance_id。我想你需要改变

$insert_result = $this->db->query("CALL insert_brouchermaster('".$broucher_name."', '".$order_number."', @inserted_instance_id)");

到这个

$this->db->query("CALL insert_brouchermaster('".$broucher_name."', '".$order_number."'");
//and add this line
$new_id = $this->db->insert_id();

那就是说,我没有经常使用存储过程,而且暂时没有,所以我的语法可能有问题。从不如此,使用insert_id()来获得您的追求。

关于函数here

的文档

另见SO question

相关问题