MYSQL的经典asp参数查询

MYSQL的经典asp参数查询,mysql,asp-classic,parameter-passing,Mysql,Asp Classic,Parameter Passing,您好,我对MySQL还比较陌生,并且尝试过通过示例使用参数查询 如果我简单地说一句话?在sql语句中,代码可以工作,但我想知道如何传递多个 所以我尝试使用一个命名参数 然而,我得到了一个错误 [MySQL][ODBC 5.1驱动程序][mysqld-5.1.73-log]where子句中的未知列“56case_id” /t3.asp,第32行 你会看到我尝试过的其他几种方法都没有成功 帮助会很好 我的代码是 Set connContent = Server.CreateObject("ADODB

您好,我对MySQL还比较陌生,并且尝试过通过示例使用参数查询

如果我简单地说一句话?在sql语句中,代码可以工作,但我想知道如何传递多个 所以我尝试使用一个命名参数

然而,我得到了一个错误

[MySQL][ODBC 5.1驱动程序][mysqld-5.1.73-log]where子句中的未知列“56case_id”

/t3.asp,第32行

你会看到我尝试过的其他几种方法都没有成功

帮助会很好

我的代码是

Set connContent = Server.CreateObject("ADODB.Connection") 
connContent.ConnectionString=.....
connContent.Open

Set cmdContent = Server.CreateObject("ADODB.Command")
Set cmdContent.ActiveConnection = connContent
Set rs = Server.CreateObject("ADODB.Recordset")
cmdContent.Prepared = True

Const ad_varChar = 200
Const ad_ParamInput = 1
Const ad_Integer = 3
Const ad_DBDate = 133 
Const ad_DBTimeStamp = 135

'theNumber = 23
'theText = "Hello there!"
'theDate = "2011-10-15"
case_id=56

SQL = " select * from tbl_cases where case_id > ?case_id; "

Set newParameter = cmdContent.CreateParameter("?case_id", ad_Integer, ad_ParamInput, 50, case_id)
cmdContent.Parameters.Append newParameter

'cmdContent.Parameters.Add(new MySqlParameter("case_id",case_id));
'cmdContent.Parameters.AddWithValue ("@Case_id", 3);

cmdContent.CommandText = SQL
set rs=cmdContent.Execute

do until rs.eof
response.write rs.fields("case_id")
rs.movenext
loop


%>

无法将命名参数与经典asp/adodb一起使用

命名参数不可能,但有多个?参数工作正常。按创建顺序使用?s,因此保持代码良好的组织性是值得的。这里有一个不虚饰的例子。。。您将看到,我将cmd语句放在第一位,紧接着是按所需顺序排列的参数——每个参数都压缩成一行代码

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open(connectionString)
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn

cmd.CommandText = "UPDATE metadata SET meta_key=?, meta_value=? WHERE meta_id=?;"
cmd.Parameters.Append cmd.CreateParameter("@meta_key", adVarChar, adParamInput, 255, meta_key)
cmd.Parameters.Append cmd.CreateParameter("@meta_value", adLongVarChar, adParamInput, len(meta_value), meta_value)
cmd.Parameters.Append cmd.CreateParameter("@meta_id", adInteger, adParamInput, 11, meta_id)

cmd.Execute rCount
response.write(rCount & " records affected")
conn.Close

感谢ulloink,有没有其他方法可以通过经典aspI传递多个PARM?我刚刚尝试过SQL=select*from tbl_cases where case_id>?和proc_id=?;加上两个参数,看起来很有效,但我不确定这是否是一个合法的方法。有什么看法吗?