Классическое обновление ASP для базы данных SQL VBSCRIPT
Веб-сайт клиента перестал работать на веб-сайте, размещенном на Fasthosts (Великобритания). Ядру сайта уже более 10 лет, и он написан на ASP. В настоящее время я конвертирую его в PHP по соображениям безопасности и здравомыслия. Мне просто нужно быстро все исправить, пока это не сделано.Я извлекаю данные из базы данных в порядке и пишу новые записи.
Я использую форму для ввода деталей:
<form method="POST" action="<%=MM_editAction%>" name="form1"> <div align="center"> <h2 style="text-align: center">Enter the New Vehicle's Details</h2> <table width="500" border="0" align="center" cellpadding="2" cellspacing="2"> <tr bgcolor="#CCCCCC"> <td bgcolor="#CCCCCC" class="tableleft">Marque</td> <td bgcolor="#FFFFFF" class="tableright"><input name="Marque" type="text" value="" size="32">
Эти сведения затем передаются обратно на ту же страницу с помощью:
<input type="hidden" name="MM_insert" value="form1"> <td><input type="submit" value="Insert record"></td>
<%If (CStr(Request("MM_insert")) = "form1") Then...
Затем содержимое формы преобразуется в переменные и вставляется с помощью следующего оператора:
sql_insert = "INSERT INTO tblCarList ([Marque], [Category], [Model], [VYear], [Miles], [Description1], [Description2], [Description3], [Description4], [Description5], [Description6], [Description7], [Description8], [Description9], [Description10], [Description11], [Description12], [Description13], [Price], [Sold], [Pic1], [Pic2], [Pic3], [Pic4], [VActive]) VALUES ('" & Replace(iMarque,"'","''") & "', '" & iCategory & "', '" & Replace(iModel,"'","''") & "', '" & Replace(iVYear,"'","''") & "', '" & Replace(iMiles,"'","''") & "', '" & Replace(iDescription1,"'","''") & "', '" & Replace(iDescription2,"'","''") & "', '" & Replace(iDescription3,"'","''") & "', '" & Replace(iDescription4,"'","''") & "', '" & Replace(iDescription5,"'","''") & "', '" & Replace(iDescription6,"'","''") & "', '" & Replace(iDescription7,"'","''") & "', '" & Replace(iDescription8,"'","''") & "', '" & Replace(iDescription9,"'","''") & "', '" & Replace(iDescription10,"'","''") & "', '" & Replace(iDescription11,"'","''") & "', '" & Replace(iDescription12,"'","''") & "', '" & Replace(iDescription13,"'","''") & "', '" & Replace(iPrice,"'","''") & "', '" & Replace(iSold,"'","''") & "', '" & Replace(iPic1,"'","''") & "', '" & Replace(iPic2,"'","''") & "', '" & Replace(iPic3,"'","''") & "', '" & Replace(iPic4,"'","''") & "', '" & Replace(iVActive,"'","''") & "')"
Это работает нормально, но когда я использую ту же страницу для обновления записи, но изменяю инструкцию SQL на:
sql_replace = "REPLACE INTO tblCarList ([Marque], [Category], [Model], [VYear], [Miles], [Description1], [Description2], [Description3], [Description4], [Description5], [Description6], [Description7], [Description8], [Description9], [Description10], [Description11], [Description12], [Description13], [Price], [Sold], [Pic1], [Pic2], [Pic3], [Pic4], [VActive]) VALUES ('" & Replace(iMarque,"'","''") & "', '" & iCategory & "', '" & Replace(iModel,"'","''") & "', '" & Replace(iVYear,"'","''") & "', '" & Replace(iMiles,"'","''") & "', '" & Replace(iDescription1,"'","''") & "', '" & Replace(iDescription2,"'","''") & "', '" & Replace(iDescription3,"'","''") & "', '" & Replace(iDescription4,"'","''") & "', '" & Replace(iDescription5,"'","''") & "', '" & Replace(iDescription6,"'","''") & "', '" & Replace(iDescription7,"'","''") & "', '" & Replace(iDescription8,"'","''") & "', '" & Replace(iDescription9,"'","''") & "', '" & Replace(iDescription10,"'","''") & "', '" & Replace(iDescription11,"'","''") & "', '" & Replace(iDescription12,"'","''") & "', '" & Replace(iDescription13,"'","''") & "', '" & Replace(iPrice,"'","''") & "', '" & Replace(iSold,"'","''") & "', '" & Replace(iPic1,"'","''") & "', '" & Replace(iPic2,"'","''") & "', '" & Replace(iPic3,"'","''") & "', '" & Replace(iPic4,"'","''") & "', '" & Replace(iVActive,"'","''") & "')"
Я получаю сообщение об ошибке сервера 500.
Поле ID является первичным ключом, но запись выбирается с помощью переданной переменной URL:
<% Dim thevehicle Dim thevehicle_numRows Dim tvSQLsource Dim tvSQLid Dim tvSQLstring tvSQLsource = "SELECT * FROM tblCarList WHERE ID = " tvSQLid = Request.Querystring("ID") tvSQLstring = tvSQLsource & tvSQLid Set thevehicle = Server.CreateObject("ADODB.Recordset") thevehicle.ActiveConnection = MM_database_STRING thevehicle.Source = tvSQLstring thevehicle.CursorType = 0 thevehicle.CursorLocation = 2 thevehicle.LockType = 1 thevehicle.Open() thevehicle_numRows = 0 %>
Строка подключения к базе данных выглядит следующим образом:
<!-- #include virtual = "/my_db/adovbs.inc" --> <% ' Path to Databases Dim MM_database_STRING, MM_database_STRINGPath, MM_database_STRINGPathBlank MM_database_STRING = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("\my_db\car_database_new.mdb") MM_database_STRINGPath = Server.MapPath("\my_db\car_database_new.mdb") %>
Любая помощь в этом была бы оценена по достоинству, так как я не держал в курсе кодирования уже более 10 лет.
Что я уже пробовал:
Я изменил форму и имена переменных со страницы новой записи при создании страницы обновления записи.