Dynamische Abfrageerstellung aufgrund von PARAMETERBESCHRÄNKUNGEN
Beim Ausführen von Abfragen mit dynamischen Spaltennamen können Entwickler auf die Einschränkung stoßen, dass Spaltennamen nicht parametrisiert werden können . Um dieses Problem zu umgehen, muss man die Abfrage zur Laufzeit dynamisch erstellen.
Betrachten Sie das folgende nicht funktionierende Beispiel:
SqlCommand command = new SqlCommand("SELECT @slot FROM Users WHERE name=@name; "); prikaz.Parameters.AddWithValue("name", name); prikaz.Parameters.AddWithValue("slot", slot);
Alternativ können Sie die Eingabe „Slot“ auf die Whitelist setzen Verhindern Sie Injektionsangriffe und erstellen Sie die Abfrage wie folgt:
// TODO: verify that "slot" is an approved/expected value SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
Dieser Ansatz stellt sicher, dass „@name“ parametrisiert bleibt, während die Variablenspalte dynamisch verarbeitet wird Name.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Abfragen mit parametrisierten Werten dynamisch erstellen, wenn die Spaltennamen variabel sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!