#html #sql-server #insert-update
#HTML #sql-сервер #вставить-обновить
Вопрос:
У меня проблема с вставкой HTML-данных в SQL Server. вот подробности:
это моя хранимая процедура;
@articleID int,
@articleBody nvarchar(max)
AS
UPDATE v2_Articles SET articleBody = @articleBody WHERE articleID = @articleID
и это мой asp-код для вставки данных;
x_articleBody = Replace(Replace(Request.Form("x_articleBody"), CHR(34), """"), "'", """")
Connection.Open(ConnStr)
Connection.Execute("EXEC InsertBody @articleID = " amp; aID amp; ", _
@articleBody = '" amp; x_articleBody amp; "'")
Connection.Close()
и это мои данные для вставки;
<font> TEXT TEXT amp;nbsp;amp;nbsp; TEXT TEXT</font>
Итак, проблема в том, что когда я пытаюсь это сделать, сохранение данных до
amp;nbsp;
это означает, что после обработки таблица sql изменяется следующим образом;
<font> TEXT TEXT
Есть ли какие-нибудь идеи по этому поводу?
ps. Я использую текстовый редактор nicedit для генерации HTML-данных.
Комментарии:
1. Это все виды плохого. Зачем сохранять HTML в базе данных? Вы проверяете свои аргументы? Как вы удерживаетесь от сохранения вредоносного HTML? Вы должны использовать sproc, а не динамический SQL. И т.д. и т.п.
2. поскольку никто не может вставить вредоносный HTML-код, это локальное приложение, и ни одна из страниц не доступна, кроме администратора =))
Ответ №1:
Прежде всего, не используйте встроенный SQL — вы причиняете себе дополнительную головную боль, делая это, потому что вам приходится проходить через этот беспорядок с очисткой данных, и вы подвергаете свое приложение потенциальной SQL-инъекции.
Создайте хранимую процедуру, которая принимает текст в качестве параметра, и используйте это для сохранения вашей HTML-разметки.
Комментарии:
1. спасибо, Кон, не мог бы ты, пожалуйста, посоветовать, как использовать текст в качестве параметра =)