在绝对紧急的情况下,我试图浏览我的网站并添加参数化查询。我是新手,才刚刚了解它们。
我的问题是,我对连接类型知之甚少,我看到的所有示例都在使用另一种连接方法,这使我感到困惑。我不想改变连接数据库的方式,因为它在很多页面上,我只是想更新我的查询以使其更安全。
这就是我一直连接到数据库的方式:
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查询过渡到参数化的SQL,并且在变量名称方面遇到了一些麻烦。 我正在使用用jScript编码的Classic ASP。 下面的代码将等级值(1-5)放入数据库中。首先,它删除该对象的所有用户先前的评分,然后将新的评分写入数据库。该函数已经收到,并且我已经解析了Rating变量(一个TinyInt)。也已发送均为整数的UserID和PgID值
问题内容: 我一直在寻找如何从经典的asp调用存储过程并将参数传递给它的方法,这是我的存储过程,可以正常工作 和到目前为止的我的vbscript代码- 问题答案: 您正在寻找Parameters属性。 哦,劳迪,我又在写VBScript。
问题内容: 我很难使用MySQLdb模块将信息插入到我的数据库中。我需要在表中插入6个变量。 有人可以帮我这里的语法吗? 问题答案: 提防对SQL查询使用字符串插值,因为它不能正确地转义输入参数,并使您的应用程序容易受到SQL注入漏洞的影响。 这种差异看似微不足道,但实际上它是巨大的 。 不正确(存在安全问题) 正确(带有转义符) 这增加了混乱,即用于绑定SQL语句中的参数的修饰符在不同的DB A
问题内容: 我正在尝试从w3scools修改脚本,以结合使用asp和ajax来查询数据库并返回结果。 这是代码: 我想将select字段替换为2个输入字段。 有人可以告诉我如何修改javascript,以便输入值和querystring一起传递,以及需要在表单上更改哪些内容以调用函数。 谢谢 问题答案: 这完全取决于您希望页面如何操作。您能更具体一点吗? 当您说“输入值”时,您的意思是一个文本框?
问题内容: 我很难使用MySQLdb模块将信息插入到数据库中。我需要在表中插入6个变量。 有人可以帮我这里的语法吗? 问题答案: 提防对SQL查询使用字符串插值,因为它不能正确地转义输入参数,并使您的应用程序容易受到SQL注入漏洞的影响。这种差异看似微不足道,但实际上它是巨大的。 不正确(存在安全问题) 正确(带有转义符) 这增加了混淆,用于绑定SQL语句中的参数的修饰符在不同的DB API实现之
我正在尝试为我们网站上运行在单独服务器上的经典asp部分实现单点登录。我已经使用simpleSAMLphp在另一台服务器上实现了php SSO。我正在尝试使用shibboleth来实现asp/IIS的经典功能。我已经到达了我们身份提供者的登录页面,但一旦我进行身份验证,我就会卡在/SAML2/POST上,并且有一个网页说找不到我服务器的ip地址。我曾尝试实施在论坛中找到的修复,但仍然没有取得任何进