SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.12.2011 16:52:46

dadli
Завсегдатай
Зарегистрирован: 16.10.2011
Сообщений: 50

как надo правилно ставить ограничительи при создании хранимые процедуры ?

здраствуите, не понимал как нада ставить ограничитель при создании хранимые процедуры. сделаю так:

mysqli_query($db,
"DELIMITER //
CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70))
    NOT DETERMINISTIC
    SQL SECURITY INVOKER
    COMMENT ''
BEGIN
SELECT shemos_dro INTO ppp FROM online WHERE ipadres = 55;
END //
")or die(mysqli_error($db));



mysqli_error() виведит что у меня есть ошибка на первом линие
где мне есть ошибка?

Неактивен

 

#2 19.12.2011 18:50:20

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: как надo правилно ставить ограничительи при создании хранимые процедуры ?

Разбейте запрос на 3 шага, т.к. по сути это 3 разных запроса:
mysql_query ('DELIMITER //');
mysql_query ('CREATE PROCEDURE ...');
mysql_query ('DELIMITER ;');

Я не пробовал, но по идее должно сработать. В любом случае, в mysqli_query можно писать только один запрос, а в Вашем случае их 3.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 19.12.2011 18:57:49

dadli
Завсегдатай
Зарегистрирован: 16.10.2011
Сообщений: 50

Re: как надo правилно ставить ограничительи при создании хранимые процедуры ?

mysql_query ('DELIMITER //');

етот запрос видает ошибку


вот что я тестировал сеичас, если через php фаила питаюc я создат процедуру видает мне ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER // CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70)) NOT DETERMIN' at line 1

вот так виглядит етот php фаил:
include 'dbconnect.php';

mysqli_query($db,
"DELIMITER //
CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70))
   NOT DETERMINISTIC
   SQL SECURITY INVOKER
   COMMENT ''
BEGIN
SELECT shemos_dro INTO ppp FROM online WHERE ipadres = 55 LIMIT 1;
END;//
DELIMITER ;
")or die(mysqli_error($db));


но если через phpMyAdmin запускаю етот запрос, уже создается процедура, почему так происходит, почему через пхп фаила не создается? не могу понимать

Неактивен

 

#4 20.12.2011 11:11:23

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: как надo правилно ставить ограничительи при создании хранимые процедуры ?

Попробуйте просто запрос "CREATE PROCEDURE", без "'DELIMITER", при этом естсественно в конце не нужно писать "//". Да и зачем Вам из своего приложения её создавать? Вы ведь создаёте её раз и навсегда smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson