好学IT学院:IT信息技术分享交流平台
标签:PHP  来源:互联网  作者:不详  发布时间:2007-05-08  ★★★加入收藏〗〖手机版
摘要:我的SQL是这么写的insertinto_user(username,password,memo)values('$username','$password','$memo')…

我的SQL是这么写的insert   into   _user   (username,password,memo)   values   ('$username','$password','$memo')

这么写没什么

但如果memo的文本中包含'号或')字时这条SQL岂不是就乱了?

我想问的就是怎么避免这种问题出现?

1楼

简单的方法之一:

在插入数据之前替换掉单引号换成全角的单引号。

e.g.:

$username=str_replace("'","'",$username);

2楼

不会吧,这么惨?那如果必须是半角的呢?

没有好的方法吗?

3楼

靠,怎么会乱呢?$memo只是一个变量而已,不管什么内容,都是完全添到数据库里了

4楼

这样写,是加入转义符   \   的,这样插入数据库,用PHP再读出来显示在网页的时候不会有   \   出现,如果在其它用途的话,可以读出来之后   stripslashes($var)来还原

$sql="insert   into   _user   (username,password,memo)   values   ('$username','$password','".addslashes($memo).

"')"

另外,我无意中发现,PHP是可以自动在单引号或双引号中的字符串变量中的引号加转   义符的,你可以试试,

5楼

应该不会有什么问题。好多新闻标题里都有引号,正常使用

6楼

我KAO,果然自动添加了转义符,PHP真是TMD太爽了!

结帐