2013-11-12 6 views
0

Ошибка mysql is throwing isВызов хранимой процедуры дает ошибку

У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «NULL» по строке 1

Мое использование phpmyadmin для процедуры wreite.

и моя хранимая процедура

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

Объявленные переменные и переменные, начинающиеся с @ две разные истории. Читайте о пользовательских переменных (те, у которых есть @).

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 ; 

Также в строке запроса вы хотите использовать ? в качестве параметров, а не имена переменных. И вы можете пропустить установку разделителя на что-то другое, чем ;

+0

его не работает для меня ... :-( – user1940803

+0

И почему? Сообщения об ошибках? – fancyPants

+0

такая же ошибка ... это то же самое в phpmyadmim ...? – user1940803

Смежные вопросы