Heim >Datenbank >MySQL-Tutorial >Warum kann ich in meiner SQL-Abfrage keine vorbereiteten Anweisungen für Tabellennamen verwenden?

Warum kann ich in meiner SQL-Abfrage keine vorbereiteten Anweisungen für Tabellennamen verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-19 13:41:49363Durchsuche

Why Can't I Use Prepared Statements for Table Names in My SQL Query?

Fehlerbehebung bei vorbereiteten Anweisungen für die Eingabe von Tabellennamen

Bei dem Versuch, vorbereitete Anweisungen zum Festlegen eines Tabellennamens für die Datenauswahl zu verwenden, bleibt während der Abfrageausführung ein Fehler bestehen. Der bereitgestellte Beispielcode weist das folgende Problem auf:

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.

...

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date

Der Übeltäter in diesem Szenario ist die Unfähigkeit, einen Tabellennamen durch einen Parameter zu ersetzen. Vorbereitete Stellungnahmen sind hierfür nicht geeignet; Der Tabellenname muss in der Abfrage fest codiert sein. Um das Problem zu lösen, ziehen Sie den folgenden Ansatz in Betracht:

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]";

Das obige ist der detaillierte Inhalt vonWarum kann ich in meiner SQL-Abfrage keine vorbereiteten Anweisungen für Tabellennamen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn