苹果电脑做淘宝方便吗:关于ASP与SQL写入时单引和双引,如何用replace替换

来源:百度文库 编辑:高校问答 时间:2024/05/06 02:24:44
我一直弄不明白这ASP数据写入数据库到底是单引号影响SQL语句还是双引号影响SQL语句,还是在写入时双引号和单引号都不能出现,我看过一些书,越看越迷,因此就在这请教各位了,
假设request.name从表单返回的值是"alert('欢迎光临')"(包含双引号)
我要怎么处理才能把它写进去?帮忙把程序写一下,反正又不是太长,连接和记录用conn和rs代替,能省就省,把主要的说一下,

还有哪位给推荐个讲解这东西的文章,让我更深入的理解一下
注意在SQL中代入的是变量名,不是值,

a=request(name)
insert aa(nn) values ('a')
是这样的形式,

在写入数据库的时候,将英文单引号替换成中午的单引号
输出的时候再替换回来

'替换单引号,向数据库中写入数据时用
function RealString(strSrc)
RealString = Replace(Trim(strSrc), "'", "’")
end function

'替换单引号并进行HTML编码,向网页输出数据库内容时用
function Convert(strSrc)
Convert = Server.HTMLEncode(Replace(Trim(strSrc), "'", "’"))
end function

这里显示可能有点问题。但在一般的代码编辑页面能看出来!思路是这样的!

双引号无所谓,关键是不能有单引号,因为单引号是SQL语句自己用的,

你可以这样处理一下再操作,例如:

a="alert('欢迎光临')"

a=replace(a,"'","''")

建议换成rs.addnew
rs.open "aa",conn,3,3
rs.addnew
rs("aa")=a
rs.update
rs.close
不会出错

半角下的单引号影响数据的输入,主要是单引号放在sql语句中有问题。因为在sql中涉及到字符串时,就用单引号引起来,如果出现两个单引号之间有个单引号的话,sql就不能识别了。所以会出错。只要在输入时将单引号屏蔽了就行了。这是一个开发过程中的通病。