日期:2014-05-16  浏览次数:20766 次

mysql存储过程使用接收到的参数做表名的问题
DROP PROCEDURE IF EXISTS updateimage;
CREATE PROCEDURE updateimage
(
$id int, 
$tablename varchar(20),
$img varchar(500)
)
BEGIN
IF $img !="" THEN
update $tablename set litpic=$img where aid=$id;
END IF;
END;

这一句有问题,
update $tablename set litpic=$img where aid=$id;
是 $tablename 的问题。。。

------解决方案--------------------
MYSQL不支持表名做为变量。
你需要通过
PREPARE
EXECUTE
DEALLOCATE PREPARE
来实现。