PHP_PDO 呼叫mysql 帶返回引數的儲存過程
阿新 • • 發佈:2019-01-05
DROP PROCEDURE IF EXISTS pro_test;
create procedure pro_test(in val VARCHAR(50) ,out rtn int)
begin
declare err INT default 0;
-- 如果出現異常,會自動處理並rollback
declare exit handler for sqlexception ROLLBACK ;
-- 啟動事務
start transaction;
insert into test_user values(NULL,1,'啊是大三的'); -- set err = @@IDENTITY; -- = 獲取上一次插入的自增ID; set err =last_insert_id(); -- 獲取上一次插入的自增ID insert into test_user VALUES(NULL,val,err); -- 執行沒有異常,提交事務 commit; -- 設定返回值為1 set rtn=1; end;
$name = '成都市';
$stmt = $db->prepare("CALL pro_test(?,@sp_result);");
$stmt->bindParam(1, $name);
$stmt->execute ();
$outputArray = $db->query("select @sp_result")->fetch(PDO::FETCH_ASSOC);
print_r($outputArray["@sp_result"]);