Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как надo правилно ставить ограничительи при создании хранимые процедуры ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dadli
Отправлено: 19 Декабря, 2011 - 13:21:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




здраствуите, не понимал как нада ставить ограничитель при создании хранимые процедуры. сделаю так
PHP:
скопировать код в буфер обмена
  1. "DELIMITER //
  2. CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70))
  3.    NOT DETERMINISTIC
  4.    SQL SECURITY INVOKER
  5.    COMMENT ''
  6. BEGIN
  7. SELECT shemos_dro INTO ppp FROM online WHERE ipadres = 55;
  8. END//
  9. ")or die(mysqli_error($db));


виведит что у меня есть ошибка на первом линие, тоест здес DELIMITER // .
потом сделал две запрос, в первом запросе отделно вставил ограничитель то есть так

и во втором запросе уже толко проседура вставил, но перви запрос ошибку вивел.
напишите плиз пример как нада правилно ставить ограничительи? и в начале и в конце
 
 Top
EuGen Администратор
Отправлено: 19 Декабря, 2011 - 13:25:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




На первый взгляд код верен. Вероятно, дело в способе передачи запроса к БД.
http://www.php.net/manual/en/mys....multi-query.php
- может посылать несколько запросов сразу.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
tuareg
Отправлено: 19 Декабря, 2011 - 13:47:57
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Сделайте дамп процедуры через PMA там у видите.
По-моему после END должна быть ; и только потом //
Или есть еще такой вариант
END//
DELIMITER;

(Отредактировано автором: 19 Декабря, 2011 - 14:16:36)

 
 Top
dadli
Отправлено: 19 Декабря, 2011 - 14:31:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




EuGen
то есть так?
PHP:
скопировать код в буфер обмена
  1. "DELIMITER //;
  2. CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70))
  3.    NOT DETERMINISTIC
  4.    SQL SECURITY INVOKER
  5.    COMMENT ''
  6. BEGIN
  7. SELECT shemos_dro INTO ppp FROM online WHERE ipadres = 55;
  8. END//
  9. ")or die(mysqli_error($db));



tuareg
в конце так написл
END;//
и так тоже
END//
DELIMITER;



mysqli_error() всегда виведит что ошибка есть в запросе и он есть на первом линие, в чом может бить дело ?
 
 Top
EuGen Администратор
Отправлено: 19 Декабря, 2011 - 14:34:07
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dadli пишет:
DELIMITER //;

Думаю что все же без точки с запятой.

Может, будет полезно http://forums[dot]mysql[dot]com/read.php[dot][dot][dot]98,161275,161275


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dadli
Отправлено: 19 Декабря, 2011 - 15:32:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




вот что я тестировал сеичас, если через 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 фаил:

PHP:
скопировать код в буфер обмена
  1. include 'dbconnect.php';
  2.  
  3. "DELIMITER //
  4. CREATE PROCEDURE `procpros`(OUT ppp VARCHAR(70))
  5.    NOT DETERMINISTIC
  6.    SQL SECURITY INVOKER
  7.    COMMENT ''
  8. BEGIN
  9. SELECT shemos_dro INTO ppp FROM online WHERE ipadres = 55 LIMIT 1;
  10. END;//
  11. DELIMITER ;
  12. ")or die(mysqli_error($db));



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

(Отредактировано автором: 19 Декабря, 2011 - 15:33:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB