от
Это простой кусок кода ASP. У меня не должно быть проблем с этим. Тем не менее, вот оно! Я искал через переполнение стека и не могу найти ответ. У меня есть вставка SQL, которая продолжает создавать две записи. Я не могу найти причину, ритм или рифму, чтобы решить эту проблему. Что заставляет меня иметь эту дубликат?
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; DATA 

SOURCE=c:/inetpub/wwwroot/website/database/msg.mdb"
sql="INSERT INTO msg (uid,thisuid,bizid,ucomments,posted) VALUES 
('"

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

1 Ответ

0 голосов
от
Вы открываете свой оператор SQL с помощью
rs.open
, а затем выполняете его с помощью
conn.execute
-> double insert. Нет необходимости создавать набор записей для вставки, достаточно
conn.execute
. Однако оба метода
rs.Open
и
conn.Execute
открыты для SQL-инъекции из-за способа, которым был создан оператор SQL. В этом сценарии лучший подход состоит в том, чтобы очистить любой ввод перед передачей непосредственно в оператор SQL и переключиться на использование параметризованных запросов, которые используют объект
ADODB.Command
.     
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...