日期:2014-05-16  浏览次数:20348 次

请教一个SQL命令
本帖最后由 xilaianzxsc 于 2013-10-31 13:11:01 编辑
ASP+SQL

sql = "insert into vendor_tongzi_dtl (FaBu_Dep,FaBu_Topic,FaBu_Mess,Begin_date,End_date,FaBu_Ren) values ('"
sql = sql + Request.Form('select_fbtz') + "'"
sql = sql + ",'" + Request.Form('tz_topic') + "'"
sql = sql + ",'" + Request.Form('tz_mess') + "'"
sql = sql + ",'" + Request.Form('tz_date_1') + "'"
sql = sql + ",'" + Request.Form('tz_date_2') + "'"
sql = sql + ",'" + Session('yonghuid')+ "'"
sql = sql + ")"

如果用户在tz_mess这个文本框里,正常输入一些汉字,不会出错。

现在遇到一个新的问题

用户输入了带了“ “ (即:半角的单引号) 此符号的内容,则SQL命令出错。

出错的原因也能明白,前后的'全乱套了。

问下:如果用户一定要输入这些特殊字符,如何防止SQL命令出错呢?

------解决方案--------------------
不要直接拼接sql
插入数据ado有接口可以给你用的


Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from vendor_tongzi_dtl"
rs.Open sql,conn,3,2

rs.addnew
rs("FaBu_Dep")=Request.Form('select_fbtz')
rs("FaBu_Mess")=Request.Form('tz_mess')
rs.update

rs.close 
Set rs = Nothing
conn.close 
set conn=Nothing


类似于这样吧