我无法创建一个简单的vbscript字符串

Ali*_*our 0 vbscript

我多次遇到这个问题而且我正在寻找原因.

sql="update setting set hashcode='"&hashcode&"'"
Run Code Online (Sandbox Code Playgroud)

错误:

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

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

Microsoft VBScript编译错误'800a0401'

预期结束声明

请注意,更改哈希码的初始值无效.

但这很好用

sql="update setting set anotherword='"&anotherword&"'"
Run Code Online (Sandbox Code Playgroud)

您是否知道为什么重命名参数可以解决问题?

Kei*_*all 7

你需要围绕&角色的空白以防止歧义.

&ha被视为数字(十六进制)值,直接跟随字符串是非法的,这就是期望语句结束的原因.(&h表示vbscript中十六进制数的开头,a是有效的十六进制数字.)

所以你的代码应该是:

sql = "update setting set hashcode = '" & hashcode & "'"
Run Code Online (Sandbox Code Playgroud)

附注:为防止SQL注入(取决于hashcode变量中的值来自哪里),您可能希望使用replace(hashcode, "'", "''")

  • `&h`表示十六进制数.`&ha`是十六进制数`A`(`0xA`). (5认同)