关于sql语句的闭合方式

关于sql语句的闭合方式

前言
以前一直以为字符型的SQL语句只能用单引号或双引号闭合,数值型可以不用闭合。以为php的SQL语句能用括号闭合是因为PHP的特性。自己的基础实在不行。
准备:
建一张包含数值型和字符型字段的表,并插入数据。
这里有一个在线测试sql语句的网站(http://sqlfiddle.com),含有以下数据库运行环境,很方便。
在这里插入图片描述
左边输入框执行建库、表、添加数据等操作,右边执行查询语句,如show、select。
在这里插入图片描述
常用闭合方式:
单引号''、双引号""、括号()、括号+单引号('')、多层括号+单引号,例((((((((''))))))))。另外mysql还可以使用括号+双引号("")和多层括号+双引号((((((((""))))))))
以下为分别测试数值型与字符型的实际结果:

数值型mysqlmssqloraclePostgreSQL
''
""
()
('')
((((((((''))))))))
("")
((((((((""))))))))
字符型 mysqlmssqloraclePostgreSQL
''
""
()
('')
((((((((''))))))))
("")
((((((((""))))))))

附上多层括号的测试结果图,及各数据库的注释用法(测试版本不同可能影响实际操作结果):
mysql5.6:

#单行注释
-- 单行注释(后有空格)
/*多行注释*/ 

在这里插入图片描述
ms sql server2017:

--单行注释(无空格)
/*多行注释*/

在这里插入图片描述
Oracle 11g R2:

/*多行注释*/  
--单行注释(无空格)
REM单行注释,注释的是在它之后包含sql语句的那一行

在这里插入图片描述
(ps:第一次知道火狐浏览器滚动截图)
PostgreSQL 9.3:

--单行注释
/*多行注释*/ 

在这里插入图片描述
在做sqli靶场的时候会有以上闭合情况,可设置字典或手动测试闭合方式。

(注:本人菜鸡,个人见解,如有错误,欢迎评论指出)
参考文章:
各种数据库的注释
关于sql注入语句闭合的一些见解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值