2016-08-09 9 views
0

Ich konfrontiert dieses Problem viele Male und ich bin auf der Suche nach dem Grund.Ich kann keine einfache VBScript-Zeichenfolge erstellen

sql="update setting set hashcode='"&hashcode&"'" 

Fehler:

sql="update setting set hashcode='"&hashcode&"'"

----------------------------------------------^

Microsoft VBScript compilation error '800a0401'

Expected end of statement

Bitte beachten Sie, dass der Anfangswert von hashcode Ändern nicht wirksam ist.

Aber das funktioniert gut

sql="update setting set anotherword='"&anotherword&"'" 

Haben Sie eine Ahnung, warum die Parameter umbenennen das Problem löst?

Antwort

7

Um Unklarheiten zu vermeiden, benötigen Sie Leerzeichen um das Zeichen &.

&ha wird als numerischer (hexadezimaler) Wert betrachtet, und es ist illegal, einem String direkt zu folgen, weshalb ein Ende der Anweisung erwartet wird. (&h bezeichnet den Beginn einer Hexadezimalzahl in vbscript und a ist eine gültige Hexadezimalzeichens.)

So sollte Ihr Code sein:

sql = "update setting set hashcode = '" & hashcode & "'" 

Randbemerkung: SQL-Injection zu verhindern (je wo der Wert innerhalb Ihrer hashcode Variable kam), möchten Sie vielleicht verwenden replace(hashcode, "'", "''")

+0

OMG! Was bedeutet "ha" wirklich? hexadezimal? –

+5

'& h' bezeichnet eine hexadezimale Zahl. '& ha' ist die hexadezimale Zahl' A' ('0xA'). –

Verwandte Themen