表名变量用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);