今年最后一个难题,谁能解决送他最好的新年礼物!

tangzehuan 2003-12-31 02:43:08
SQL能同时执行用分号(;)间隔多个语句,如果想让他一次只能执行一个,怎么办?

例如:
在ASP中执行语句
conn.execute "Delete From a;Delete From b"
他会把a,b表记录都删除!

我现在想禁止这种情况,要让SQL只能执行一个!
...全文
51 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zs1005 2004-01-02
  • 打赏
  • 举报
回复
两个办法:

1.过滤SQL字符串
strSQL = Replace(strSQL,";","")

2.用ADO操作
qhdsnow 2004-01-01
  • 打赏
  • 举报
回复
写了两个又想只执行一个,那就别写另一个呀!不是这个意思吗?
hanbaojun 2004-01-01
  • 打赏
  • 举报
回复
wubaozhang(吴宝璋) 、y7967(走猫的路,让狗说去吧) 的回答比较适合你吧。
i三千 2004-01-01
  • 打赏
  • 举报
回复
过滤分号啊~
tangzehuan 2004-01-01
  • 打赏
  • 举报
回复
不是我想要这样写代码,
是不怀好意的人使用这种特点攻击网站,也是常见的sql 注入漏洞,不知道有什么办法可以解决!
ydr2002 2003-12-31
  • 打赏
  • 举报
回复
sql 注入漏洞
wubaozhang 2003-12-31
  • 打赏
  • 举报
回复
我想的话可以先用INSTR()寻找‘;’,如果找到了就取‘;’前面的部分执行就可以了

如Str1="delete * from tabel;delete * from table2"
if inStr(Str1,";")>0 then Str1=left(Str1,inStr(Str1,";"))
conn.execute Str1

不知可行否??
xiantao123 2003-12-31
  • 打赏
  • 举报
回复
楼主什么意思。
我不明白,同意ygghost(刘华强) 的观点
mmcgzs 2003-12-31
  • 打赏
  • 举报
回复
?
sxsgssgs 2003-12-31
  • 打赏
  • 举报
回复
严重同意:inelm(Archimond 【阿克蒙德】)
shleo 2003-12-31
  • 打赏
  • 举报
回复
为什么不用if语句判断到底执行哪一句?
而要像这样全部写在一起
ygghost 2003-12-31
  • 打赏
  • 举报
回复
什么意识?执行哪个就写哪个不就行了?
conn.execute "Delete From a"
conn.execute "Delete From b"
nchen123 2003-12-31
  • 打赏
  • 举报
回复
很简单,把 ; 替换掉就不会被人利用了:

sql = replace(sql, ";", "")

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧