关于Mysql查询带单引号及插入带单引号字符串问题
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在MySQL查询中,正确处理带有单引号的字符串至关重要,因为单引号是SQL语句中的特殊字符,未正确处理可能导致语法错误或者更严重的安全问题,如SQL注入攻击。SQL注入是恶意用户通过输入带有特殊SQL命令的数据来操纵或破坏数据库的一种手段。 `mysql_real_escape_string`函数是PHP中用于预防SQL注入的一种方法,它会在特定的字符前添加反斜杠(\)进行转义。这些字符包括单引号('),双引号("),反斜杠(\)和NULL。此函数需要一个开启的MySQL连接,并且会考虑到当前连接的字符集,因此在处理多字节字符集(如UTF-8)时更为安全。例如,如果用户输入包含单引号的字符串,`mysql_real_escape_string`会将单引号转义为\',使得SQL语句能够正常执行。 然而,`addslashes`函数则简单地在需要转义的字符前添加反斜杠,它不仅处理单引号,还处理双引号、反斜杠和NULL。这个函数对于单字节字符集可能有效,但对于多字节字符集可能存在安全隐患,因为它不能正确处理多字节的特殊字符。黑客可以通过使用特定的多字节字符序列来绕过`addslashes`的防御,因为它不会考虑字符集。 `mysql_escape_string`函数与`mysql_real_escape_string`类似,但不考虑字符集,只进行简单的转义操作。这意味着在处理多字节字符时可能会出现问题。此外,`mysql_escape_string`在PHP 5.5.0及以上版本已被弃用,推荐使用`mysql_real_escape_string`或者更好的,采用预处理语句(如PDO或mysqli的预处理)来避免SQL注入。 在查询中,当字段类型为整型时,如`ID`,使用`ID=1`或`ID='1'`都是可行的,但前者由于无需进行隐式类型转换,所以在性能上稍微优于后者。然而,为了确保安全性,通常建议始终使用引号将字符串值包围,尽管这可能导致轻微的性能损失。 对于PHP的`get_magic_quotes_gpc`配置,这是一个过时的功能,它会在用户提交的数据中自动添加反斜杠。但是,由于它已不再推荐使用,且存在漏洞,所以不应依赖它来处理SQL注入。即使`get_magic_quotes_gpc`设置为开启,也应该使用`mysql_real_escape_string`或预处理语句来处理用户输入,以提供额外的安全层。 总结来说,`addslashes`适用于简单场景且只处理单字节字符集,`mysql_real_escape_string`考虑了字符集,但需要PHP 4.3.0以上版本,而`mysql_escape_string`已被弃用。在处理用户输入时,应优先考虑使用`mysql_real_escape_string`配合预处理语句,以确保数据安全性和程序的健壮性。同时,应避免依赖`get_magic_quotes_gpc`,而是主动进行数据清理和验证。




























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【IOS应用源码】带文字说明,可点击按钮左右滑动和手势滑动两种方法控制的图片切换组件.zip
- 【IOS应用源码】从下往上弹出的子视图窗口.zip
- 【IOS应用源码】弹出框显示的Picker control.zip
- 【IOS应用源码】弹出框口.zip
- 【IOS应用源码】弹出列表框效果.zip
- 【IOS应用源码】弹出框帐号密码输入效果.zip
- 【IOS应用源码】弹出日期选择器.zip
- 【IOS应用源码】当点击编辑器的时候,编辑器自动调整高度.zip
- 【IOS应用源码】地图程序那样的Curl效果分享MapCurlEffect.zip
- 【IOS应用源码】地图上多个指针显示(一些本地化应用或社交应用可以用得到).zip
- 【IOS应用源码】底部弹出视频,并且可以进行翻页的效果demo.zip
- 【IOS应用源码】第一个iphone小程序(实现聊天功能) Chat-1.zip
- 【IOS应用源码】点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容.zip
- 【IOS应用源码】点击地图上的指针弹出窗口(里面显示该地点的相关信息).zip
- 【IOS应用源码】点击选择日期.zip
- 【IOS应用源码】顶部状态bar效果.zip


