2013-12-06 4 views
0

Я создаю функциональность системного журнала.
Что мне в основном нужно сделать, это добавить соответствующую вставку, обновить запрос в отдельную таблицу с датой и пользователем. Мой вопрос в том, когда я пытаюсь вставить запрос вставки как данные строки, я получаю сообщение об ошибке. Я понимаю, что это из-за «» в запросе. Но мне все равно нужно повторно запускать эти запросы снова. Таким образом, удаление «» не является для меня вариантом.mysql вставить запрос в столбец таблицы

Ниже приводится запросом я пытаюсь вставить:

insert into querylog (query,systemTime,user) 
values 
('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')', 
'12/6/2013 10:35:56 PM', 
'Lakmal') 
+0

Вам нужно избежать внутренних кавычек или изменить их на двойные. – Barmar

+0

Если вы выполняете эту команду из C# (за ваш тег), просто используйте параметры – iamkrillin

ответ

2

Попробуйте удваивая апостроф (два одиночных апострофа, а не двойные кавычки) внутри этого внутреннего «вставить» заявление:

insert into querylog (query,systemTime,user) 
values 
('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES (''I 501'',''3223'',15000,15000,''2013-12-06'',''C 116'','''',''-'')', 
'12/6/2013 10:35:56 PM', 
'Lakmal') 
+0

Спасибо за быстрый ответ Winney, он сработал. – PAVITRA

1

Вы начинаете свои одинарные кавычки в начале значений.

Затем вы заканчиваете их на полпути через него.

Заменить

values ('INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')','12/6/2013 10:35:56 PM','Lakmal') 

с:

values ("INSERT INTO invoice(invoiceno,invoicenote,invoicetotal,nettotal,invoicedate,customer,receivedby,vehicleno) VALUES ('I 501','3223',15000,15000,'2013-12-06','C 116','','-')','12/6/2013 10:35:56 PM','Lakmal") 
0

я согласен с Grant Winney, изменить апострофа двойной апостроф.

Или сначала подготовьте инструкцию, затем выполните ее со значениями в качестве параметра. См. Пример http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.prepare%28v=vs.110%29.aspx. Большим преимуществом является то, что вы можете поместить свои строки в Command.Parameters без изменений, и в вашей строке инструкции Sql ничего не происходит, нарушая синтаксис команды insert.

Смежные вопросы