Задавайте вопросы, мы ответим
Вы не зашли.
Подскажите, пожалуйста. Создаю процедуру, выполняю ее через 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 забыли
Неактивен
Да, спасибо
Неактивен