这是我关于stackoverflow的第一个问题,我希望有人可以帮助我。
我正在创建一个类似于facebook的网站。 继承人我的sql。
readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == '"session("ID")"'"
并且接下来的错误
Microsoft VBScript编译错误'800a0401'
预期声明结束
/student/S0215538/newsfeed1.asp,第22行
readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == ' "session("ID")" ' "
--------------------------------------------------------------------------------------------------------------^
我无法理解为什么我会收到此错误,如果我将WHERE注释掉,那就可以了,但它不是我需要的。
提前致谢
谢谢大家,这很快。
我总是忘记&,并且那些提到==的人应该=,你也是对的。
它修复了这个错误,但是我现在在这一行post.Open readsql, connection, adOpenkeyset, AdLockOptimistic
中有一个新的错误,说“标准表达式中的数据类型不匹配”
“post”是我的记录集,“connection”是adodb连接。
答案 0 :(得分:1)
需要字符串连接&
:
readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'"
在查询中也只使用一个=
。
答案 1 :(得分:0)
需要
readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'"
问题是你的语法,字符串需要用双引号"
终止,并在VBScript中使用&符号&
正确连接。同时删除==
并使用=
替换为RedFilter建议。
答案 2 :(得分:0)
试
readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'"
答案 3 :(得分:0)
您需要将变量会话(“ID”)连接(&)到字符串中:
>> set session = CreateObject("Scripting.Dictionary")
>> session("ID") = "whatever"
>> readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID ==
'" & session("ID") & "'"
>> WScript.Echo readsql
>>
SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == 'whatever'
>>
(你确定你的DBMS'SQL方言使用“==”进行比较吗?)