mysql jdbc怎么用问号传参

mysql jdbc怎么用问号传参,第1张

mysql jdbc怎么用问号传参

简单的一个例子:登陆.

从登陆框中传过来两个参数.

正常情况下、假设是 aa bb

select * from tbl_user where uname='aa' and upass='bb'

然后有些会sql的人就想到了在参数后面加些其他的东西

比如在bb' or 'a'='a 或者 DELETE FROM tbl_user WHERE 1>0之类的

这样SQL语句就变成:

select * from tbl_user where uname='aa' and upass='bb' or 'a' = 'a'

这样的语句是不安全的。

后来就出现PreparedStatement 对象的?占位符,通过给? 设值,可以把传过来的参数当成普通的字符串,包括单引号。这样就避免了一些灾难。

解决方案:

在代码里,在执行select语句之前,加上

mysql_query("set

names

'utf8'")

注意,mysql数据库也要设置utf8,浏览器显示和文件类型都设置为utf-8

设置utf8原因:

UTF-8(8-bit

Unicode

Transformation

Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken

Thompson于1992年创建。现在已经标准化为RFC

3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8438871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存