2013-05-28 4 views
0

На веб-сайте, над которым я работаю, пользователи могут добавлять несколько полей формы с помощью плагина jQuery.Вставка нескольких записей с классическим asp

Но как я могу вставить эти несколько записей в базу данных?

SQL = "INSERT INTO sehirler (memberid, sehiradi, sehirkodu, dateENTERED) VALUES ('"& Session("MEMBERID") &"', '"& sehiradi &"', '"& sehirkodu &"', '"& NOW() &"')" 
    Set objSehirEkle = objConn.execute(SQL) 
+2

Вам нужно будет написать больше кода, прежде чем у нас будет достаточно информации, чтобы дать полезный ответ, но в то же время ПОЖАЛУЙСТА, прочитайте [bobby-tables] (http://bobby-tables.com). У вас есть довольно неприятная уязвимость Sql Injection, которая должна быть исправлена. –

+0

это все, что еще я могу поделиться с вами? – Efe

ответ

0

Ну, вы можете просто выполнить более одного SQL заявление, в один присест, сцепление их точкой с запятой:

SQL = "INSERT INTO MyTable (Field1, Field2) VALUES ('name1', 1);" & _ 
     "INSERT INTO MyTable (Field1, Field2) VALUES ('name2', 2);" 
Set objSehirEkle = objConn.execute(SQL) 

Теперь, если вы хотите сделать что-то с возвращенным записей (objSehirEkle), вам ссылаются только на инструкцию FIRST. Вы можете получить доступ к результату из следующих утверждений с помощью метода NextRecordset, например, так:

Set objNext = objSehirEkle.NextRecordset 
0

Это, как вставить несколько «наборов» в одном операторе INSERT (вы не говорите, какие базы данных и версия вас «используете, я считаю, SQL Server 2008 и выше и MySQL поддерживает этот синтаксис):

INSERT 
    INTO Table (Col1, Col2, Col3) 
    VALUES 
    (Value1, Value2, Value3), 
    (Value4, Value5, Value6), 
    (Value7, Value8, Value9) 

Но, как и другие люди говорят, ум ваш SQL Injection подвергание первым.

-1

Если вы вставляете много полей, используя плагин jQuery, вы должны управлять этим на странице asp.
Я смоделировал ситуацию, когда вы создаете много полей ввода по полю выбора. Я установил скрытое поле для управления числами элементов, которые я создал на странице. Необходимо передать это поле для отправки asp-страницы.

Попробуйте сделать это (HTML-страницы):

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8">  
    <title>Creating input fields</title> 
    <script src="http://code.jquery.com/jquery-2.0.1.min.js"></script> 
    <script> 
     $().ready(function(){ 
     $('#branches').change(function(){ 
      var nCounter = 0; 
      var nr_branches = $('#branches').val(); 

      //-- Cleaning all elements 
      var $divB = $('#divBranches');      

      if (!$('#divBranches').is(':empty')){    
      while($divB.children('input').length >= 1) { 
       $divB.children("input:first").remove(); 
      }          
      }   

      while(nCounter < nr_branches) { 
      //-- Create an input field 
      var input = $("<input type='text' class='bra' name='branche_nr_"+ nCounter +"' placeholder='Branche Nr."+ nCounter +"' />"); 
      $divB.append(input);    
      nCounter++; 
      } 

      //-- Set number of fields in hidden 
      $('#qty_fields').val(nCounter); 

     });   
     }); 
    </script> 
    </head> 
    <body> 
    <form name="frm" action="savefields.asp" method="post"> 
     <input type="text" name="college" placeholder="University Name" /> 
     <select name="branches" id="branches"> 
     <option value="0">-select your branche-</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
     <option value="6">6</option> 
     <option value="7">7</option> 
     <option value="8">8</option> 
     </select> 
     <input type="hidden" name="qty_fields" id="qty_fields" /> 
     <div id="divBranches"></div> 
     <input type="submit" value="submit" />  
    </form> 
    </body> 
</html> 

ASP страницу (Submit):

<% 
nQtdFields = request.form("qty_fields") 
nCount = 0 

do while cint(nCount) < cint(nQtdFields) 
    SQL = "insert into table_name(name) values ('"& request.form("branche_nr_" & nCount) &"')" 
    Set objSehirEkle = objConn.execute(SQL) 
    nCount = nCount + 1 
loop 
%> 

Вот так.
Rergards,
Vin.

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