asp 在mysql 查询_MySQL / Classic ASP – 参数化查询

在绝对紧急情况下,我试图浏览我的网站并添加参数化查询.我是新手,刚刚了解了他们.

我的问题是,我只知道很少关于连接类型和我看到的所有示例都使用其他连接方法,这让我感到困惑.我不是特别想改变我连接到我的数据库的方式,因为它在很多页面上,我只是想更新我的查询更安全.

这就是我连接到我的数据库的方式:

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

connContent.ConnectionString = "...blah...blah...blah..."

connContent.Open

这是带参数的SQL位:

username = Trim(Request("username"))

connContent.Prepared = True

Const ad_nVarChar = 202

Const ad_ParamInput = 1

SQL = " SELECT * FROM users WHERE (username=?) ; "

Set newParameter = connContent.CreateParameter("@username", ad_nVarChar, adParamInput, 20, username)

connContent.Parameters.Append newParameter

Set rs = connContent.Execute(SQL)

If NOT rs.EOF Then

' Do something...

End If

rs.Close

它显然不起作用,但我需要知道我是否可以使用我的连接实际实现这一点,或者我完全错过了一些阻止它工作的东西?

在我出去接下来的两天调试一些我不熟悉的东西之前,我想知道我至少在正确的轨道上……

解决方法:

第二个代码段中的代码是正确的,但应该应用于新的ADODB.Command对象,而不是应用于Connection对象:

username = Trim(Request("username"))

'-----Added this-----

Dim cmdContent

Set cmdContent = Server.CreateObject("ADODB.Command")

' Use this line to associate the Command with your previously opened connection

Set cmdContent.ActiveConnection = connContent

'--------------------

cmdContent.Prepared = True

Const ad_nVarChar = 202

Const ad_ParamInput = 1

SQL = " SELECT * FROM users WHERE (username=?) ; "

Set newParameter = cmdContent.CreateParameter("@username", ad_nVarChar, ad_ParamInput, 20, username)

cmdContent.Parameters.Append newParameter

cmdContent.CommandText = SQL

Set rs = cmdContent.Execute

If NOT rs.EOF Then

' Do something...

End If

rs.Close

顺便说一句,有一个拼写错误的adParamInput拼写而不是ad_ParamInput(在我的例子中更正).

标签:sql,mysql,database,asp-classic

来源: https://codeday.me/bug/20191009/1875866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值