SQL关于特殊字符处理的基本方法
作者 佚名技术
来源 ASP编程
浏览
发布时间 2012-03-12
用户的输入无非两个用途:对数据库操作或显示在页面上,下面分别对这两种情况下特殊字符的处理加以说明。 1. 对数据库操作 用户输入的数据用于对数据库进行操作时,又分为两种情况,一是进行写库操作,二是作为查询条件。 1.1 写库操作 (insert及update都视为写库操作,这果以insert为例说明,update的处理相同) 一般采用insert语句或AddNew方法两种方式进行写库操作,我们先来看insert语句: DIM username,sqlstr
username = trim(Request.Form("uname")) sqlstr = "insert into [userinfo] (username) values (''"& username &"'')" 以SQL Server为例,使用这种方式写库,如果username中含用单引号(''),会出错。使用下面的自定义函数,可以将单引号进行转换: Rem 转换SQL非法字符
function SQLEncode(fString) if isnull(fString) then SQLEncode = "" exit function end if SQLEncode=replace(fString,"''","''''") end function 以上函数将一个单引号转换为两个连续的单引号,数据库能够接受,并以一个单引号写入。SQL语句改为: sqlstr = "insert into [userinfo] (username) values (''"& SQLEncode(username) &"'')"
再来看AddNew方法: DIM username
username = trim(Request.Form("uname")) ''MyRst为Recordset对象,MyConn为Connection对象 MyRst.open "[userinfo]",MyConn,0,3 MyRst.AddNew MyRst("username").Value = username MyRst.Update MyRst.Close 使用这种方式写库时,不必调用SQLEncode()对单引号进行转换,数据库会自行处理。 对于存储过程的的参数,同样不必进行单引号的转换。 建议大家利用存储过程进行操作,好处嘛,我在《ASP与存储过程》一文中已做了阐述。否则,建议使用AddNew方法写库,好处不仅仅在于避免对单引号进行处理,本文对此不作深入探讨。 1.2 用户输入做为查询条件 如果用户输入的数据作为查询条件出现在where子句中,不论该where子句属于update语句、delete语句还是select语句,都要对单引号进行转换。 2. 用户输入的数据作为输出,显示在页面上 我 |
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇:
ASP实例:ASP+AJAX制作无刷新新闻评论系统
下一篇:
ASP教程:ASP是不区分大小写
关于
SQL关于特殊字符处理的基本方法
的所有评论