SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 30.10.2018 19:08:39

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Ошибка синтаксиса php mysql

Подскажите, пожалуйста. Создаю процедуру, выполняю ее через heidiSQL и она создается, но создаю через php функцию mysql_query и получаю ошибку

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER // CREATE PROCEDURE `p2` (IN ttable TEXT, IN ttext TEXT) BEGIN SET' at line 1


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#2 30.10.2018 19:12:26

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Ошибка синтаксиса php mysql

Приведите весь код?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 30.10.2018 19:39:03

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Ошибка синтаксиса php mysql

DELIMITER //
CREATE PROCEDURE `p2` (IN ttable TEXT, IN ttext TEXT)
BEGIN SET @ttable = ttable;
SET @ttext = ttext;
SET @tttable = SUBSTRING_INDEX(@ttable,'|',1);
SET @tttext = SUBSTRING_INDEX(@ttable,'|',1);
SET @cc = 0;
WHILE LENGTH(SUBSTRING(@ttext,locate('|',@ttext))) > 0 DO SET @casess = SUBSTRING_INDEX(@ttable,'|',1);
SET @tttable = SUBSTRING_INDEX(@ttable,'|',1);
SET @tttext = SUBSTRING_INDEX(@ttext,'|',1);
SET @cc = IF(STRCMP(@tttable,'qwe_users') and STRCMP(@tttable,'qwe_offers'),' ',' MAX_ROWS = 99 ');
SET @vard = concat('DROP TABLE IF EXISTS `',@tttable,'`;');
SET @varc = concat('CREATE TABLE `',@tttable,'` ',@tttext,' ',@cc,' ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci');
PREPARE zxcd FROM @vard;
EXECUTE zxcd;
PREPARE zxcc FROM @varc;
EXECUTE zxcc;
CASE WHEN  @tttable = 'qwe_admin' THEN insert into `qwe_admin` (`login`, `password`, `mail`, `menu`) values ('qweqwe','efe6398127928f1b2e9ef3207fb82663', 'mail@domain.com', '0:1:1:0:1:0#<li><a href=\"firms.php?REQ=auth\">Активация контрагентов</a></li><li><a href=\"register.php\">Создать нового контрагента</a></li><li><a href=\"reviews2.php?REQ=auth\">Одобрить комментарии</a></li>'); WHEN  @tttable = 'qwe_infofields' THEN INSERT INTO `qwe_infofields` (`f_info`) VALUES ('Новости');
INSERT INTO `qwe_infofields` (`f_info`) VALUES ('Тендеры');
INSERT INTO `qwe_infofields` (`f_info`) VALUES ('Объявления');
INSERT INTO `qwe_infofields` (`f_info`) VALUES ('Вакансии');
INSERT INTO `qwe_infofields` (`f_info`) VALUES ('Пресс-релизы');
ELSE BEGIN END;
END CASE;
SET @ttext = SUBSTRING(@ttext,locate('|',@ttext)+1);
SET @ttable = SUBSTRING(@ttable,locate('|',@ttable)+1);
END WHILE;
END//


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#4 30.10.2018 20:57:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Ошибка синтаксиса php mysql

Я про phpшный код


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 30.10.2018 22:38:25

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Ошибка синтаксиса php mysql

Ну так я это и вставляю туда. Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#6 30.10.2018 22:43:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Ошибка синтаксиса php mysql

>Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))
Ну вот и приведите php-шный код, который это делает - только не словесным описанием, как Вы делаете, а именно код smile.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 30.10.2018 23:55:15

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Ошибка синтаксиса php mysql

delimiter это команда консольного клиента mysql
mysql_query выполняет содержимое как одну команду

Неактивен

 

#8 31.10.2018 00:39:21

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Ошибка синтаксиса php mysql

deadka написал:

>Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))
Ну вот и приведите php-шный код, который это делает - только не словесным описанием, как Вы делаете, а именно код smile.

Ну так вот он полный код, mysql_query(file_get_contents("file")), а что внутри файла выше написано


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#9 31.10.2018 00:40:12

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Ошибка синтаксиса php mysql

vasya написал:

delimiter это команда консольного клиента mysql
mysql_query выполняет содержимое как одну команду

А как быть?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#10 31.10.2018 02:32:43

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Ошибка синтаксиса php mysql

platedz написал:

А как быть?

не использовать delimiter
в данном случае он не нужен

Неактивен

 

#11 31.10.2018 02:58:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Ошибка синтаксиса php mysql

ещё один end забыли

Неактивен

 

#12 31.10.2018 03:04:52

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Ошибка синтаксиса php mysql

Да, спасибо


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

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