Yii 使用存储过程插入后,如何获得存储过程返回的值? [ 2.0 版本 ]
call user();
手动执行可以得到返回值,
但是用 createCommand
插入好像只能得到影响的行数,并不是返回值
Yii::$app->db->getLastInsertID();
得到的是 0,并不能得到最后插入的 id
共 2 个回答
-
没怎么用过存储过程,但是试了一下,没用 PROCEDURE 而是用的 function 因为有返回值
存储过程
DELIMITER $$ USE `demo`$$ DROP FUNCTION IF EXISTS `insert_goods`$$ CREATE DEFINER=`root`@`%` FUNCTION `insert_goods`() RETURNS INT(11) BEGIN INSERT INTO goods VALUES(NULL, "zhangsan", "123", 1); RETURN LAST_INSERT_ID(); END$$ DELIMITER ;
调用返回
$res = Yii::$app->db->createCommand('select insert_goods() as id')->queryScalar(); var_dump($res);
yzg91
注册时间:2018-11-15
最后登录:2022-05-10
在线时长:22小时13分
最后登录:2022-05-10
在线时长:22小时13分
- 粉丝2
- 金钱479
- 威望20
- 积分899