请更正我的SQL语法

时间:2011-04-11 06:18:05

标签: vb6

我知道我的语法有问题...... "select * from tblpayroll where empid = userid"

UserID是一个变量......

2 个答案:

答案 0 :(得分:2)

显然,这是你的vb变量。

select * from tblpayroll where empid = '" & userid & "' "

以这种方式使用它,它将起作用

答案 1 :(得分:0)

文本"select * from tblpayroll where empid = userid"将通过完全按照发送到SQL后端,userid部分将不会被替换。因此,除非您有userid列,否则您可能会收到错误消息。即使您userid列,结果也不会是您期望的结果。

您需要做什么取决于userid是数值还是字符串值。对于数字,您可以使用:

"select * from tblpayroll where empid = " & CStr(userid)

这将首先将数值转换为字符串并按原样检查。

对于字符串值,请使用:

"select * from tblpayroll where empid = '" & userid & "'"

这将简单地用引号括起字符串,以确保字符串比较有效。你需要知道,如果userid没有以某种方式消毒,这是一个坏主意 - 它可能导致SQL注入攻击。修复的艺术超出了这个特定问题的范围,但值得记住。

如果您的变量是数字但数据库字段是字符串,该怎么办是另一回事。您可以使用CStr和零填充来执行此操作,但由于这是不太可能的情况,我在此处没有记录。