2016-07-13 6 views
0

Der folgende Code wurde entwickelt, um n Zeilen in eine Tabelle einzufügen. Für alle n> = 108 werden jedoch nur 108 Zeilen eingefügt. Funktioniert gut für n < 108. Ich führe die Abfrage auf der Datenbank und es funktioniert wie erwartet. Hat jemand von euch ein ähnliches Problem? Jede Hilfe wäre willkommen.multi-Insert mit sqlsrv_query

$data = "a1='1', a2='2', a3='3', a4='4', a5='5', a6='6'"; 
    $queryInsert = 
    " SELECT $data INTO [$tableName] 
     DECLARE @i int 
     SET @i=1 
     WHILE (@i < $n) 
     BEGIN 
      INSERT [$tableName] 
      SELECT $data 
      SET @i = @i + 1 
     END 
    "; 
    $stmt1 = sqlsrv_query($conn1, $queryInsert); 

EDIT: PHP7, Treiberversion: 4

+0

Ich würde fragen, warum Sie eine Schleife wie diese verwenden, um Daten an erster Stelle einzufügen. –

+0

@SeanLange, habe ich dies versehentlich durch Hinzufügen von Schlaf (1) behoben; nach sqlsrv_query. Hast du eine Idee, warum das passieren würde? – John

+0

Keine Ahnung, warum das "reparieren" würde. Sie sollten eine Zahlen- oder Tally-Tabelle verwenden, anstatt eine Schleife zu verwenden. Es wäre so viel einfacher. http://www.sqlservercentral.com/articles/T-SQL/62867/ –

Antwort

0

Offensichtlich funktioniert dies jetzt. Keine Ahnung warum.

$data = "a1='1', a2='2', a3='3', a4='4', a5='5', a6='6'"; 
    $queryInsert = 
    " SELECT $data INTO [$tableName] 
     DECLARE @i int 
     SET @i=1 
     WHILE (@i < $n) 
     BEGIN 
      INSERT [$tableName] 
      SELECT $data 
      SET @i = @i + 1 
     END 
    "; 
    $stmt1 = sqlsrv_query($conn1, $queryInsert); 
    sleep (1); 
Verwandte Themen