调用存储过程是一个错误

时间:2013-11-12 10:16:17

标签: mysql stored-procedures

mysql抛出的错误是

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“NULL”附近使用正确的语法

我使用phpmyadmin来破坏程序。

我的存储过程是

BEGIN
DECLARE page_limit int(100);
DECLARE page_no VARCHAR(100);
DECLARE rstarts int(100) DEFAULT 1;
DECLARE rends int(100) DEFAULT 15; 
DECLARE query varchar(255) ;

set query = ' select brandid from brandinfo limit @rstarts,@rends';
PREPARE stmt FROM @query; 
set rstarts =  15;
set rends =1;
EXECUTE stmt using @rstarts,@rends;
DEALLOCATE PREPARE stmt;
END

1 个答案:

答案 0 :(得分:1)

以@开头的声明变量和变量是两个不同的故事。阅读用户定义的变量(带有@的变量)。

DELIMITER $$
CREATE PROCEDURE your_procedure_name()
BEGIN
SET @rstarts = 1;
SET @rends = 15; 

set @query = 'select brandid from brandinfo limit ?, ?';
PREPARE stmt FROM @query; 
EXECUTE stmt using @rstarts, @rends;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;

同样在您的查询字符串中,您希望使用?作为参数,而不是变量名称。您可能会错过将分隔符设置为与;

不同的分隔符