2016-08-05 22 views
1

Seine sehr seltsame Situation, ich weiß, Nuss, ich habe mich irgendwie in mich hinein. Ich muss eine Verbindung zu einem anderen Systemdienst herstellen, indem ich einige Parameter in der URL übergebe.Wählen Sie * aus Wählen Sie

In ihrem Dienst erstellen sie einige Abfrage mit Parameter I übergeben.

Für meinen Fall muss ich Select als einen Parameternamen übergeben, der tatsächlich ein Klassenname auf ihrer Seite ist. Also enden sie damit, Abfrage als Select * from select und einige Bedingung zu erstellen.

Bei der Ausführung I Fehlerreaktion bin immer so:

'Es gibt einen Syntaxfehler Abfrage in einer SQL war oder Filter Ausdruck in Zeile 1, Position 186. Saw \ "Wählen Sie \", aber erwartet ' ..SQL:.. \ "SELECT col1, col2 FROM Select AS D, wo eine Bedingung

jemand mir auf diesem helfen kann

+1

'Select' ist ein reserviertes Wort ** ** – Sami

Antwort

4

Seit Select ist reserviert Wort, müssen Sie es entkommen, indem sie in Backticks Zeichen, um umschließenden für MySQL Ihre Anfrage zu verarbeiten:

select * from `select` 
+0

oder noch besser, nicht Sicherlich reservierte Wörter als Tabellennamen –

+0

@JuanCarlosOropeza verwenden, aber OP geschrieben hat:" ich muss 'Select' als Parameternamen übergeben "so Ich nehme an, er kann es in diesem speziellen Fall nicht ändern –

+0

Ja, das weiß ich. Ihre Lösung ist in Ordnung, aber OP shuold löst das zugrunde liegende Problem. Wenn er einen Dienst aufruft, besteht das Problem darin, wie die Dienstseite die Abfrage erstellt. Ich kann die SQL-Injektion von hier spüren;) –

-1

Seine empfohlen, nicht MySQL reservierten Schlüsselwörter zu verwenden .. aber wenn seine notwendige gibt es eine Lösung ..

verwenden, wird es für Sie arbeiten:

select * from yourdatabasename.select 
+0

Danke für die Lösung, aber es kann nützlich sein, wenn wir Service oder SQL-Abfrage in unserer Anwendung selbst erstellen. In meinem Fall ist es jedoch ein Dienst von einem Dritten, den ich anrufe, so dass diese Lösung ein unnötiges enges Kopplungsszenario erzeugen wird. Und ich bin mir auch nicht sicher, ob die Anwendung Schema- und Datenbanknamen mit mir teilen wird. – Sikandar