Задавайте вопросы, мы ответим
Вы не зашли.
Приветствую
Столкнулся с такой проблемой, что не получается выполнить call процедуры.
Отредактированно mysqluser (06.04.2010 22:35:39)
Неактивен
Причина в вашей версии. У меня ругается на неизвестную колонку path, но так и должно быть, так как после подстановки значений в переменную @sql2 запрос будет иметь след вид:
... VALUES(path,name,...
т.е. отсутствует экранирование.
Нужно:
"INSERT INTO db1.",loginp,"(upload_file_save_path,upload_file_name,upload_file_desc,upload_file_cathegory,upload_date,id)
VALUES('",upload_file_save_pathp,"','",upload_file_namep,"','",upload_file_descp,"','",upload_file_cathegoryp,"',",CURRENT_DATE,",1);");
Неактивен
Не совсем понимаю что с версией не так? Вроде те примеры с офиц сайта по ним собсно и составлял
Простите за мое ЧаВо... А что значит "отсутствует экранирование" ?
Неактивен
Насчет двойных кавычек - это немного странно, так как до этого я выполнял код типа
Неактивен
Напишите как будет выглядеть ваш запрос на добавление значений 'path','name','descr','cathegory' в таблицу 'mylogin', если вы будете его выполнять в клиенте mysql, т.е. просто наберете руками.
Неактивен
mysqluser написал:
Не совсем понимаю что с версией не так?
5.1.45 это наибольшая стабильная версия.
а в 5.5.2 могут быть глюки в связи с тем, что версия ещё сырая.
Неактивен
vasya написал:
Нужно:
"INSERT INTO db1.",loginp,"(upload_file_save_path,upload_file_name,upload_file_desc,upload_file_cathegory,upload_date,id)
VALUES('",upload_file_save_pathp,"','",upload_file_namep,"','",upload_file_descp,"','",upload_file_cathegoryp,"','",CURRENT_DATE,"',1);");
Это хорошо, но почему-то concat не хочет принимать в параметры строки "" ?
Неактивен
mysqluser написал:
Насчет двойных кавычек - это немного странно, так как до этого я выполнял код типа
CREATE PROCEDURE db1.test1(
IN loginp varchar(20))
BEGIN
set @sql=concat('CREATE TABLE IF NOT EXISTS uploadimageservice.',loginp,'(
upload_file_save_path varchar(127),
upload_file_name varchar(50) ,
upload_file_desc varchar(127) ,
upload_file_cathegory varchar(20) ,
upload_date date ,
id int NOT NULL, PRIMARY KEY (id)) TYPE = MyISAM ROW_FORMAT =DEFAULT');
PREPARE s1 from @sql;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END
И с одинарными создавало таблицу без проблем :*(
Я и не предлагаю использовать двойные кавычки в запросе создания таблицы, так как он написан правильно.
А вот второй запрос (на добавление данных) в первоначальном исполнении неверен.
Неактивен
mysqluser написал:
Это хорошо, но почему-то concat не хочет принимать в параметры строки "" ?
В чем выражается не хочет?
Неактивен
vasya написал:
mysqluser написал:
Это хорошо, но почему-то concat не хочет принимать в параметры строки "" ?
В чем выражается не хочет?
красным не подсвечивает
Неактивен
vasya написал:
Напишите как будет выглядеть ваш запрос на добавление значений 'path','name','descr','cathegory' в таблицу 'mylogin', если вы будете его выполнять в клиенте mysql, т.е. просто наберете руками.
Ну вот такой код глотает без проблем
Неактивен
mysqluser написал:
Ну вот такой код глотает без проблем
insert into db1.test1(upload_file_save_path, upload_file_name, upload_file_desc, upload_file_cathegory, upload_date, id)
values('hoho','Flowers','summer_photo','VACATIONS',CURRENT_DATE,1);
Даже не знаю, почему процедура выкидывает фокусы ?
Потому, что ваша процедура формирует код
Неактивен
vasya написал:
mysqluser написал:
Ну вот такой код глотает без проблем
insert into db1.test1(upload_file_save_path, upload_file_name, upload_file_desc, upload_file_cathegory, upload_date, id)
values('hoho','Flowers','summer_photo','VACATIONS',CURRENT_DATE,1);
Даже не знаю, почему процедура выкидывает фокусы ?Потому, что ваша процедура формирует код
insert into db1.test1(upload_file_save_path, upload_file_name, upload_file_desc, upload_file_cathegory, upload_date, id)
values(hoho,Flowers,summer_photo,VACATIONS,CURRENT_DATE,1);
И вы закономерно получите ошибку - неизвестная колонка hoho
Отсутствие кавычек и значит, что передаваемые значения не экранированы, и воспринимаются не как строковые константы.
Как решить такую проблему? Переписать без concat? просто "A"+"B" ?
Неактивен
mysqluser написал:
Как решить такую проблему? Переписать без concat? просто "A"+"B" ?
И зачем я спрашивается переписывал ваш запрос, раставляя правильным образом кавычки, в своем первом ответе в этой теме?
Неактивен
mysqluser написал:
vasya написал:
mysqluser написал:
Это хорошо, но почему-то concat не хочет принимать в параметры строки "" ?
В чем выражается не хочет?
красным не подсвечивает
Проглядел ваш ответ.
Где подсвечивает??
Выполнить не пробовали
Неактивен
vasya написал:
mysqluser написал:
vasya написал:
В чем выражается не хочет?красным не подсвечивает
Проглядел ваш ответ.
Где подсвечивает??
Выполнить не пробовали
Вот как раз пробую, но выбрасывает #42000 ?
Неактивен
Неактивен
Вам шашечки или ехать?
Выбросьте свой редактор на помойку, возьмите блокнот — он не умеет
подсвечивать синтаксис и поэтому не будет Вас смущать.
Неактивен
mysqluser написал:
Внутри функции при таком подходе цвет строки не красный а как если бы при статическом вводе.
Подсвечивает-то он у вас правильно.
Но если вы скопируете пример из моего первого ответа в этой теме или просто пристально на него посмотрите, то обратите внимание, что порядок кавычек там другой
Неактивен
vasya написал:
mysqluser написал:
Внутри функции при таком подходе цвет строки не красный а как если бы при статическом вводе.
Подсвечивает-то он у вас правильно.
Но если вы скопируете пример из моего первого ответа в этой теме или просто пристально на него посмотрите, то обратите внимание, что порядок кавычек там другой
Спасибо То есть нужно иммитировать кавычки Понятно...
Но вот тот код, что вы предлагаете работает без concat, если чисто производить инициализацию, а вот в функции не работает почему-то Но может я не так что-то понял... ?
Неактивен
У меня ваша функция, если исправить кавычки отрабатывает. Следовательно или вы допустили иную ошибку, или причина в сырой версии (тогда нужно поставить более стабильную версию).
Как сейчас выглядит функция и какая ошибка возникает?
Неактивен
vasya написал:
У меня ваша функция, если исправить кавычки отрабатывает. Следовательно или вы допустили иную ошибку, или причина в сырой версии (тогда нужно поставить более стабильную версию).
Как сейчас выглядит функция и какая ошибка возникает?
посоветуйте какой-нить редактор, чтобы удобный был. потому что у меня стоит DreamCoder
Неактивен
1) MySQL Query Browser http://dev.mysql.com/downloads/gui-tools/5.0.html
2) http://sqlinfo.ru/forum/viewtopic.php?id=2202
Неактивен
vasya написал:
1) MySQL Query Browser http://dev.mysql.com/downloads/gui-tools/5.0.html
2) http://sqlinfo.ru/forum/viewtopic.php?id=2202
Спасибо - обязательно посмотрю
Но вот я не пойму есть ли в написании кода ограничения по применению
пишу обычный код
Отредактированно mysqluser (08.04.2010 03:58:53)
Неактивен
хотя вот такой код глотает без проблем
Отредактированно mysqluser (07.04.2010 23:48:33)
Неактивен