概览
在标准 SQL 中,字符串使用的是单引号。
如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。
但在其它的数据库中可能存在对 SQL 的扩展,比如在 MySQL 中允许使用单引号和双引号两种,oracle里面表示字符串就只允许使用单引号。
注意!
String sql = "select * from clients where uname=' "+name+" 'and upwd=' "+pwd+" '"
SQL中只支持单引号,表示字符串常量
SQL中的双引号用于表示字符串
两个加号是连接字符串
最终生成的SQL是
select * from clients where unam='xxx' and upwd='yyy';
上面的写法存在sql注入漏洞:
select * from clients where uname='xxx' and upwd='yyy' or 1='1';