表名变量用CONCAT进行字符串连接,但是 into就不能用了……所以,DELIMITER $$
CREATE PROCEDURE AdminRecord (in table_name varchar(100),OUT RecordNumber INT)
BEGIN
set @sql_str = CONCAT('select count(*) into @RecordNumber from ',table_name);
prepare sql_stmt from @sql_str;
execute sql_stmt;
set RecordNumber= @RecordNumber;
deallocate prepare sql_stmt;
END;
$$然后
delimiter ;
CALL AdminRecord ('你的表名',@CountRecord);
SELECT @CountRecord;上面是命令行中的,php的你再搞一搞
可见,在字符串中,如果有个@ 他就当成变量 象:into @RecordNumber
但直接写 into RecordNumber 就不行
所以最后,还要赋回来,set RecordNumber= @RecordNumber;
真不是一般的麻烦啊直接传个sql语句,按照类似的
CALL AdminRecord ('select count(*) into @RecordNumber from 你的表名 ',@CountRecord);
CREATE PROCEDURE AdminRecord (in table_name varchar(100),OUT RecordNumber INT)
BEGIN
set @sql_str = CONCAT('select count(*) into @RecordNumber from ',table_name);
prepare sql_stmt from @sql_str;
execute sql_stmt;
set RecordNumber= @RecordNumber;
deallocate prepare sql_stmt;
END;
$$然后
delimiter ;
CALL AdminRecord ('你的表名',@CountRecord);
SELECT @CountRecord;上面是命令行中的,php的你再搞一搞
可见,在字符串中,如果有个@ 他就当成变量 象:into @RecordNumber
但直接写 into RecordNumber 就不行
所以最后,还要赋回来,set RecordNumber= @RecordNumber;
真不是一般的麻烦啊直接传个sql语句,按照类似的
CALL AdminRecord ('select count(*) into @RecordNumber from 你的表名 ',@CountRecord);
我先测试一下