Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php select语句中带有变量的MySQL游标_Php_Mysql_Cursor - Fatal编程技术网

Php select语句中带有变量的MySQL游标

Php select语句中带有变量的MySQL游标,php,mysql,cursor,Php,Mysql,Cursor,我在存储过程中包含以下代码: DECLARE done INT DEFAULT FALSE; declare v_degree int(11); declare v_start_age smallint(6); declare v_end_age smallint(6); declare v_gender varchar(20); declare v_calctable varchar(200); SELECT calculationtable into v_calctable FROM

我在存储过程中包含以下代码:

DECLARE done INT DEFAULT FALSE;
declare v_degree int(11);
declare v_start_age smallint(6);
declare v_end_age smallint(6);
declare v_gender varchar(20);
declare v_calctable varchar(200);

SELECT calculationtable into v_calctable FROM wac.degrees where tablename = concat("cdb_" + arg_tablename);

declare cur CURSOR for select degree, start_age, end_age, belt, gender from v_calctable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
像这样,我将在“SELECT calculation table to v_calctable FROM wac.degrees where tablename=concat(“cdb_u”+arg_tablename);”行中得到一个语法错误

如果我把它放在“declarecoursor”后面,就不会有语法错误,但我需要在de cursor select语句中使用结果

我怎样才能做到这一点

谢谢

当您通过另一个开始结束关键字使用内部块时 那么它就没有syntask错误了。
但是这个过程是否能给出正确的结果我不清楚

您可能需要的只是一个连接,而不是一个存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `my_procedure`()
BEGIN
DECLARE done INT DEFAULT FALSE;
declare v_degree int(11);
declare v_start_age smallint(6);
declare v_end_age smallint(6);
declare v_gender varchar(20);
declare v_calctable varchar(200);

SELECT calculationtable into v_calctable FROM wac.degrees where tablename = concat("cdb_" + arg_tablename);
begin                                                                   -- write here begin keyword
declare cur CURSOR for select degree, start_age, end_age, belt, gender from v_calctable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
end;                                                                    -- end here inner block

END