Vorbereitete Anweisungen und Tabellennamen: Eine häufige Gefahr
Die Verwendung vorbereiteter Anweisungen zur dynamischen Angabe von Tabellennamen führt häufig zu Fehlern wie „Parameter ‚Pa_RaM000‘ wurde angegeben, wo ein Tabellenname erforderlich ist.“ Dieser Fehler verdeutlicht eine entscheidende Einschränkung: Vorbereitete Anweisungsparameter können Tabellennamen nicht direkt in SQL-Abfragen ersetzen.
Die Lösung besteht darin, die SQL-Abfragezeichenfolge durch Verketten des Tabellennamens (der fest fest codiert sein muss) mit beliebigen parametrisierten Werten zu erstellen. Betrachten Sie dieses korrigierte Beispiel:
<code class="language-sql">private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]"; </code>
Hier wird reportDate
(ein Parameter) mit einem festen Tabellennamenpräfix verkettet. Dadurch wird sichergestellt, dass die Abfrage die Zieltabelle korrekt identifiziert. Denken Sie daran, dass das direkte Ersetzen von Tabellennamen durch Parameter von Datenbanksystemen, die vorbereitete Anweisungen verwenden, nicht unterstützt wird.
Das obige ist der detaillierte Inhalt vonWarum führt die Verwendung von Parametern für Tabellennamen in vorbereiteten Anweisungen zu Fehlern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!