1. 程式人生 > >PHP_PDO 呼叫mysql 帶返回引數的儲存過程

PHP_PDO 呼叫mysql 帶返回引數的儲存過程

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"]);