【网学网提醒】:网学会员为广大网友收集整理了,[ASP]数据库操作技巧,希望对大家有所帮助!
几个注意事项:
1、
没有事先声明过的变量,或由request取得的值,判断是否为空时,应该使用如下格式:
ifrequest("name")&;""=""then...
否则可能会得到错误的结果
2、
以"H"开头的变量,在用"&;"做串接运算时,一定要加上空格,下面的写法是错误的:
...
Hits=request.form("hits")
sql="select*fromtablewhereHits="&;Hits
...
复制代码
在VBScript中,&;H是代表16进制常数,比如&;H5fac90相当于C++中的0x5fac90
因此,要用下面的写法:
...
Hits=request.form("hits")
sql="select*fromtablewhereHits="&;Hits
...
复制代码
3、
添加和修改文本型字段记录时,不推荐使用下列SQL语句:
insertintotable(...)values(...)
updatetableset......
这类SQL语句本身构造起来非常麻烦,而且容易出错,最重要的是存在SQL注入的隐患,只要数据检测稍有不慎,整个系统有可能崩溃。
创建一个recordset对象,用
rs("xxx")=xxxx
...
rs.update
的方式,代码清晰,又没有危险,即使出现错误,也不会影响到数据库安全。所以大家不要为了节省一个recordset对象的空间而冒如此大的风险。
另外,在用rs.addnew添加记录时,千万要一条结果为空的SQL语句,比如:
"select*fromtablewhereid<0"
因为我们需要的只是这个表的结构,而不用管它是否有记录,以节省资源。
4、
recordset对象可以用字段索引值来代替字段名
setrs=server.createobject("adodb.connection")
sql="selectusername,age,cityfromuserdef"
rs.opensql,conn,1,1
...
复制代码
这里
rs(0)等价于rs("username")
rs(1)等价于rs("age")
rs(2)等介于rs("city")
批量删除记录
如一个相册网站,会员登录后批量删除自己照片程序:
表A是会员及相册,表B照片
tableA字段:
ID------编号
total---------总照片数量
username-------用户名
tableB字段:
picID-----------照片ID
bookID---------相册编号,对应tableA.ID
title---------照片名称
用checkbox取得要删除的照片编号:
...
关于复选框,大家注意一定要给相同的名称
这样,在处理页面中,request.form("ids")的值会是一个字符串(有网友说是数组,我没有验证过)
如果前一个页面勾选了第1、2、3项,那么response.writerequest.form("ids")结果是1,2,3逗号是自动添加的
其实在