DROP PROCEDURE `p7`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `p7`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE aa,bb VARCHAR(64);
DECLARE cur1 CURSOR FOR SELECT tablename,columnname FROM `temp_table`;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1;
REPEAT
FETCH cur1 INTO aa, bb;
IF NOT done THEN
set @sql_text:=concat("update ",aa," set ",bb,"='abc'");
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
END IF;
UNTIL done END REPEAT; CLOSE cur1;
select * from mdl_block;
END***********************
以上代码可以通过,也就是建立存储过程没有问题
调用时使用call p7()
在Mysql administrator中可以执行成功,但是在Phpmyadmin中就有问题,错误代码如下:
#1312 - PROCEDURE moodle.p7 can't return a result set in the given context
请问问题出在哪里?
查阅资料,有解决方法说在用PHP连接数据库的时候,用下面的方法解决:
define('CLIENT_MULTI_RESULTS', 131072);
$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());但是我在PHPmyadmini中没有找到 mysql_connect这个函数,该怎么处理啊?????
多谢高手指点
CREATE DEFINER=`root`@`localhost` PROCEDURE `p7`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE aa,bb VARCHAR(64);
DECLARE cur1 CURSOR FOR SELECT tablename,columnname FROM `temp_table`;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1;
REPEAT
FETCH cur1 INTO aa, bb;
IF NOT done THEN
set @sql_text:=concat("update ",aa," set ",bb,"='abc'");
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
END IF;
UNTIL done END REPEAT; CLOSE cur1;
select * from mdl_block;
END***********************
以上代码可以通过,也就是建立存储过程没有问题
调用时使用call p7()
在Mysql administrator中可以执行成功,但是在Phpmyadmin中就有问题,错误代码如下:
#1312 - PROCEDURE moodle.p7 can't return a result set in the given context
请问问题出在哪里?
查阅资料,有解决方法说在用PHP连接数据库的时候,用下面的方法解决:
define('CLIENT_MULTI_RESULTS', 131072);
$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());但是我在PHPmyadmini中没有找到 mysql_connect这个函数,该怎么处理啊?????
多谢高手指点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货