DROP PROCEDURE if EXISTS pro_up_game;
create PROCEDURE pro_up_game
(id int,String_value VARCHAR(200),
OUT Sok INT,out Error_descript varchar(100))
BEGIN
DECLARE V_sql VARCHAR(200);
DECLARE _err int DEFAULT 1;
DECLARE Error varchar(200) DEFAULT 'Success';
DECLARE CONTINUE HANDLER FOR NOT FOUND, SQLEXCEPTION,SQLWARNING
set _err= -1,Error = 'SQLWaring or NOT FOUND or SQLException';
set V_sql = CONCAT('update game set ',String_value,' where gid =',id);
SELECT V_sql;
PREPARE stmt1 from @V_sql;
EXECUTE stmt1 ;
set Sok = _err,Error_descript=Error;
select Sok,Error;
END为什么执行会有错误 call pro_up_game('4','gname =''国杀''',@Sok,@Error_descript);还有这个异常如何该 可以显示详细的异常信息;
create PROCEDURE pro_up_game
(id int,String_value VARCHAR(200),
OUT Sok INT,out Error_descript varchar(100))
BEGIN
DECLARE V_sql VARCHAR(200);
DECLARE _err int DEFAULT 1;
DECLARE Error varchar(200) DEFAULT 'Success';
DECLARE CONTINUE HANDLER FOR NOT FOUND, SQLEXCEPTION,SQLWARNING
set _err= -1,Error = 'SQLWaring or NOT FOUND or SQLException';
set V_sql = CONCAT('update game set ',String_value,' where gid =',id);
SELECT V_sql;
PREPARE stmt1 from @V_sql;
EXECUTE stmt1 ;
set Sok = _err,Error_descript=Error;
select Sok,Error;
END为什么执行会有错误 call pro_up_game('4','gname =''国杀''',@Sok,@Error_descript);还有这个异常如何该 可以显示详细的异常信息;
set Error_descript=Error;
你的程序中使用了不同的变量 !
mysql> create PROCEDURE pro_up_game
-> (id int,String_value VARCHAR(200),
-> OUT Sok INT,out Error_descript varchar(100))
-> BEGIN
-> DECLARE V_sql VARCHAR(200);
-> DECLARE _err int DEFAULT 1;
-> DECLARE Error varchar(200) DEFAULT 'Success';
-> DECLARE CONTINUE HANDLER FOR NOT FOUND, SQLEXCEPTION,SQLWARNING
-> set _err= -1,Error = 'SQLWaring or NOT FOUND or SQLException';
-> set @V_sql = CONCAT('update game set ',String_value,' where gid =',id);
-> SELECT @V_sql;
-> PREPARE stmt1 from @V_sql;
-> EXECUTE stmt1 ;
-> set Sok = _err,Error_descript=Error;
-> select Sok,Error;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)mysql> select * from game//
+------+-------+
| gid | gname |
+------+-------+
| 4 | aaaaa |
+------+-------+
1 row in set (0.00 sec)mysql> call pro_up_game('4','gname =''国杀''',@Sok,@Error_descript) //
+--------------------------------------------+
| @V_sql |
+--------------------------------------------+
| update game set gname ='国杀' where gid =4 |
+--------------------------------------------+
1 row in set (0.00 sec)+------+---------+
| Sok | Error |
+------+---------+
| 1 | Success |
+------+---------+
1 row in set (0.02 sec)Query OK, 0 rows affected (0.03 sec)mysql> select * from game//
+------+-------+
| gid | gname |
+------+-------+
| 4 | 国杀 |
+------+-------+
1 row in set (0.00 sec)mysql>