Fehler bei der Verwendung von Abfrageparametern mit der cfscript-Abfrage

8

Hier ist mein Code:

%Vor%

Dies ist der Fehler:

  

Parameter 'body WHERE' nicht in der Liste der angegebenen Parameter gefunden

     

SQL: UPDATE templates_email SET title =: titel, test_emails =: testEmail, body =: body WHERE id =: templateID

     

Der Fehler ist in C: \ ColdFusion9 \ CustomTags \ com \ adobe \ coldfusion \ query.cfc: Zeile 108

aufgetreten

Ich kann nur annehmen, dass ich mit der Art, wie mein SQL mit den Parametern strukturiert ist, etwas falsch gemacht habe, aber nicht herausfinden kann, was es ist. Kann jemand sehen, was ich hier falsch mache?

    
Jason 08.12.2011, 04:09
quelle

3 Antworten

12

Der Parser zum Abrufen der Params tokenet nicht auf Rückgabewerte, nur auf Whitespace (was wirklich ärgerlich ist). Versuchen Sie Folgendes:

%Vor%

Die ( und ) sollten jedes Problem entfernen, bei dem der Parser nicht erkennen konnte, wo die params gestoppt und gestartet wurden.

    
Mark Mandel 08.12.2011, 10:14
quelle
4

Dieser Fehler tritt aufgrund der Tab- und Zeilenumbruchzeichen in Ihrer SQL-Anweisung auf. Normalerweise löse ich die Funktion in meiner SQL-Anweisung, um diese Zeichen zu entfernen.

%Vor%

So kann Ihre setSQL () aussehen:

%Vor%

oder einfach:

%Vor%     
Peruz Carlsen 09.12.2011 21:47
quelle
0

ColdFusion kann verwirrt werden, wenn die SQL-Zeichenfolge zur Verwendung von Parametern analysiert wird. Der einfachste Weg, um diesen Mangel zu beheben, besteht darin, nach jedem Ihrer Parameter ein Leerzeichen einzufügen.

Da einige Texteditoren nachträgliche Leerzeichen löschen können, z. B. beim Speichern, lege ich nach jedem Leerzeichen am Ende einer Zeile einen leeren Kommentar an.

%Vor%     
user3071284 27.01.2017 19:54
quelle

Tags und Links