一个常见的select语句,后面加:1=1 有一些格式要求必须要有where子句,比如前台的咚咚 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 支持wylwy1130,有时候写动态sql的时候,需要where语句,但是一开始初始化sql语句的时候,是不知道那个where后面是什么.所以先写一个1=1在哪里,后面再换 我还以为是在做密码攻击呢对于安全性不高的站点在密码窗填入xx' or '1'='1说不定可以登录成功哦 个人看法:对于符合条件的检索,动态生成SQL语句时方便所写。判断用户在界面选择了该条件,则在SQL语句当中,加上相应的条件。如果没有输入任何条件,加上这句,可以避免语法错误。纯属个人看法,难免片面。 这样: 动态sql语句为 sql="select * from a where 1=1 "用户输入的东西为 tj 无论用户有没有输入条件,如用姓名查还是用身份证查等. 姓名后加上: tj := tj +"xm ="+xm1 ; 身份证后驾上 tj := tj+"sfz="+sfz1 ; 最后的动态sql为 sql:= sql +tj ; 就不用判断用户有没有选择条件了.因省略了where 1=1,用户没选条件时你的代码就增加了. 必须加上 if ....(完) 这种写法还有一种功能就是绕过编译器,例如在有些编译器中,当你用delete要删除表中数据时,会提示你是否要删除,加入这个就可以避免这种提示 动态SQL时使用,如果没有这个条件,那么就要拼装where子句,而且第一个条件不带类似and的逻辑操作符,然后从第二个条件开始使用逻辑操作符。为了避免拼装where子句时的麻烦,事先就固定这样一个where 1=1,再加检索条件就方便多了 如何合并同一张表中的数据 为什么有两个在线重做日志文件是CURRENT状态? pl/sql developer跳过数据库验证的问题 求统计某个月所有天的统计信息 请问如何在数据库中删除一个DATE类型的记录呢? 谢谢 赐教 基础问题 大家答 用存储过程创建索引时,提示错误?请指教! 在oracle中怎么导入其他格式的表格?谢谢! oracle expdp 问题 请问能把RAC的机器时间往前调吗 紧急求助一个棘手的SQL语句问题 ecxel中的数据导入到oracle
在密码窗填入
xx' or '1'='1说不定可以登录成功哦
用户输入的东西为 tj
无论用户有没有输入条件,如用姓名查还是用身份证查等.
姓名后加上: tj := tj +"xm ="+xm1 ;
身份证后驾上 tj := tj+"sfz="+sfz1 ;
最后的动态sql为
sql:= sql +tj ;
就不用判断用户有没有选择条件了.因省略了where 1=1,用户没选条件时你的代码就增加了.
必须加上 if ....(完)