Hallo,
Mehr Sinn macht es in meinen Augen, wenn ich den sqlsrv_prepare-Befehl vor die Schleife setze.
ja klar. Sonst ist der ganze Vorteil zum Teufel.
Dann ist nur das Problem, dass er den $params-array noch nicht kennt.
Welches DBMS setzt Du ein?
Ich greife per SQLManager Lite auf eine MsSql-Db zu. Die DB selbst wird aber von unserer IS verwaltet, was die nutzen müsste ich nachfragen.
Ich kenne Deine DB-Klasse nicht. Typischerweise werden innerhalb der Schleife die Werte an die Parameter gebunden. Ob Deine Klasse hier einen Arrayzugriff erlaubt oder nicht, das kann ich von außen nicht sehen. Da Deine Parameter sowieso als Einzelvariablen vorliegen, sehe ich hier kein prinzipielles Problem. In Pseudocode
Setze Prepare-Anweisung mit dem Prepared Statement und Platzhaltern ab
Solange es Datensätze gibt
Binde die Daten an die Platzhalter
Führe das Prepared Statement mit den gebundenen Daten aus
Ende Solange
Für den Zugriff auf MSSQL verwende ich bevorzugt .NET (typischerweise in Nicht-Web-Umgebungen) ;-)
Freundliche Grüße
Vinzenz