![]()  | 
		
Задавайте вопросы, мы ответим
Вы не зашли.
Подскажите, пожалуйста. Создаю процедуру, выполняю ее через 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
Неактивен
Приведите весь код?
Неактивен
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//
Неактивен
Я про phpшный код
Неактивен
Ну так я это и вставляю туда. Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))
Неактивен
>Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))
Ну вот и приведите php-шный код, который это делает - только не словесным описанием, как Вы делаете, а именно код 
.
Неактивен

delimiter это команда консольного клиента mysql
mysql_query выполняет содержимое как одну команду
Неактивен
deadka написал:
>Залил в файл через file_get_contents вытащил и mysql_query(file_get_contents("file"))
Ну вот и приведите php-шный код, который это делает - только не словесным описанием, как Вы делаете, а именно код.
Ну так вот он полный код, mysql_query(file_get_contents("file")), а что внутри файла выше написано
Неактивен
vasya написал:
delimiter это команда консольного клиента mysql
mysql_query выполняет содержимое как одну команду
А как быть?
Неактивен

platedz написал:
А как быть?
не использовать delimiter
в данном случае он не нужен
Неактивен

ещё один end забыли
Неактивен
Да, спасибо
Неактивен