经典的asp参数查询到MYSQL

时间:2014-05-08 04:34:06

标签: mysql asp-classic parameter-passing

您好我对MySQL很新,并尝试按照示例使用参数查询。

如果我只是放一个?在sql语句中代码可以工作,但我想知道如何传递多个 parms所以我试图使用命名参数。

然而我收到错误

[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


%>

2 个答案:

答案 0 :(得分:1)

命名参数不可能但是多个?参数工作正常。这些?按照它们的创建顺序使用,因此保持代码组织良好真的是值得的。这是一个没有多余装饰的例子......你会看到我把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

答案 1 :(得分:0)

无法将命名参数与经典的asp / adodb

一起使用