如果在存储过程中,想根据外面传递的表名进行操作,则需要用到prepare关键字
先举例子,如果我需要在我的存储过程中,根据外面传进来的表名,做插入操作,则是以下代码
CREATE PROCEDURE `insert_mail`(IN ptable varchar(45),
IN puserid int(11) unsigned,
IN pdataid int(11) unsigned,
IN pvalue int(11) unsigned,
IN pstate tinyint(4) unsigned,
IN pcontent varchar(128) )
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE operate INTEGER DEFAULT 0;
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
START TRANSACTION;
set @sqlcmd1=concat("INSERT INTO ",ptable," SET `user_id`=?,`data_id`=?,`value`=?,`state`=?,`content`&