0
我一直试图移动所有查询以使用预准备语句。我已经能够使INSERT和UPDATE命令正常工作,但由于某些原因,SELECT语句无法正常工作。使用标准查询,我可以使用以下方法获得一行。经典ASP准备语句SELECT不起作用
strSQL = "SELECT username FROM users WHERE id = " & request.querystring("id")
Set rs = objConnection.Execute(strSQL, ,adCmdText)
当我把它转换成准备好的语句时,它似乎返回一个结果,但没有任何结果。
set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = objConnection
cmd.CommandText = "SELECT username FROM users WHERE id = ?"
cmd.CommandType = adCmdText
cmd.Prepared = true
cmd.Parameters.Append(cmd.CreateParameter("@id", adVarChar, adParamInput, 255, request.querystring("id")))
rs = cmd.Execute()
查询返回的数据,但由于某些原因,下面如果语句将好像有一些数据。当这一行运行时,第一个查询将输出用户名。当准备好的语句运行时,它不输出任何内容,但if语句通过,如果真的如此。它似乎没有抛出任何错误。
if not (rs.eof and rs.bof) Then Response.Write(rs("username"))
你有'上的错误恢复Next'某处的代码? – Lankymart
'Set rs = cmd.Execute()'? –
很好的@TimWilliams,错过了。 – Lankymart