我正在尝试获取最后插入的值,但我收到错误:
“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");
答案 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
的文档