问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何自动转义字符串在PHP SQL查询

发布网友 发布时间:2022-04-06 02:55

我来回答

3个回答

懂视网 时间:2022-04-06 07:16

php访问mysql数据转义特殊字符的方法:1、利用mysql库函数,代码为【mysql_escape_string( string $unescaped_string ) : string】;2、利用转义函数addslashes。

【相关学习推荐:php编程(视频)】

php访问mysql数据转义特殊字符的方法:

方法一:利用mysql库函数

PHP版本在7.0之前:

mysql_escape_string ( string $unescaped_string ) : string

PHP版本在7.0之后:

mysqli_real_escape_string ( mysqli $link , string $escapestr ) : string

方法二:利用转义函数addslashes()

适合版本PHP4、PHP5、PHP7

addslashes ( string $str ) : string

PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。

遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。即get_magic_quotes_gpc()返回false时,再使用addslashes()进行特殊字符转义。示例如下:

function myaddslashes($data)
{
 if(false == get_magic_quotes_gpc())
 {
 return addslashes($data);//未启用魔术引用时,转义特殊字符
 }
 return $data;
}

想了解更多编程学习,敬请关注php培训栏目!

热心网友 时间:2022-04-06 04:24

在处理MySQL和GET、POST的数据时,常常要对数据的引号进行转义操作。
PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转。
php称之为魔术引号,这三项设置分别是
magic_quotes_gpc
影响到 HTTP 请求数据(GET,POST 和 COOKIE)。不能在运行时改变。在 PHP 中默认值为 on。
这个开启时,通过GET,POST,COOKIE传递的数据会自动被转义。
如 test.php?id=abc'de"f
echo $_GET['id']; # 会得到 abc\'de\"f
magic_quotes_gpc=On; 这个开启了,对写入数据库是没有影响的,比如 上面的$_GET['id'] 写到数据库里面,依然是 abc'de"f ,
相反,如果magic_quotes_gpc=Off; 那么字符中要带有引号(不管单引号还是双引号) ,直接写入mysql都会直接变成空白
但是,如果你将它写入文档,而非mysql。那么它将是 abc\'de\"f
magic_quotes_runtime
如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。
magic_quotes_sybase
如果打开的话,将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。
我表单内容本来是:<img alt=”" width=”400″ height=”300″ src=”/Upfiles/201105/images/1306657040.jpg” />
<img alt=\”\” width=\”400\” height=\”300\” src=\”/Upfiles/201105/images/1306657040.jpg\” />
对策一:修改php.ini文件(修改php.ini这个方法就不说了,大家可以google下)
对策二:把转义的给取消了
第一步:找到你提交的数据比如$_POST['content'],将其改成$content=stripslashes($_POST['content']);
第二步:以后在使用$POST['content']的地方都换成$content
第三步:提交到数据库,数据库储存还是正常的:<img alt=”" width=”400″ height=”300″ src=”/Upfiles/201105/images/1306657040.jpg” />读出来又成了
<img alt=\”\” width=\”400\” height=\”300\” src=\”/Upfiles/201105/images/1306657040.jpg\” />(这个应该知道怎么解决了吧?要不我再罗嗦下吧)
第四步:将数据库读取的内容再用stripslashes()过滤一下。
stripslashes() 这个函数 ,删除由addslashes()函数添加的反斜杠。用于清理从数据库或 HTML 表单中取回的数据

PHP页面中如果不希望出现以下情况:
单引号被转义为 \'
双引号被转义为 \"
那么可以进行如下设置以防止:
在php.ini中设置:magic_quotes_gpc = Off)
总结如下:
1. 对于magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。
如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。
2. 对于magic_quotes_gpc=off 的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。

热心网友 时间:2022-04-06 05:42

escape_string()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招投标技术负责人是什么证 欧美的经典的线稿漫画 推荐几款欧美漫画,跪求!!! 十大DC漫画推荐 DC漫画必看经典盘点 dc好看的漫画有哪些 十大欧美漫画推荐 欧洲经典漫画盘点 欧洲好看的漫画有哪些 欧美有哪些经典的漫画作品? 十大美国漫画推荐 美国漫画经典作品 美国著名的漫画有哪些 音悦台mini客户端为什么不能记住账号自动登录呢,,,每次都要重新输~郁... 请问 音悦台 和 百度 怎样解绑手机? 如何注册音悦台账号 PHP 访问MYSQL 特殊字符怎么处理 apache访问php文件时只要里面含有index文件就只执行index文件,怎么解决 是不是Apache禁止的直接下载.php文件 php与apache配置出问题了,无法访问。 整合apache和php后访问.php文件提示File not found,求大神拯救 linux apache不能解析php文件,访问后出现的是源代码,什么原因啊? apache访问php网页出现以下情况 如何解决??? mac下终端输入php artisan list报错 PHP导入项目启动失败,找不到接口,求解,是从阿里云下载下来的项目 0x0000007A xp蓝屏0x00000050(0xFF80EE20,0x00000008,0xFF80EE20,0x00000000)怎么解决? 电脑蓝屏:STOP:0X000008E(0XC0000005,0XBF802514,0XB592EC08,0X00000000) 电脑开机后没有进入系统就蓝屏,求助 电脑蓝屏出现0×0000008E请问是什么原因 iphone4 连接电脑发生未知错误0xE8000001,怎么办? 我的ipad同步iTunes下载软件,显示未知错误 0xE8000005 什么原因 ipod touch 1代,连接iTunes一直显示无法连接,出现错误0XE800000A iPhone遇到未知错误0xE怎么办 itunes发生错误代码0XE800000A 应用程序发生异常 未知的软件异常(0xe06d7363),位置0x7c812aeb php插入MYSQL数据库的时候,不能有那些特殊字符,就是我要对这些数据要进行提前处理的 php操作MySQL中单引号与怎么处理? php mysql_real_escape_string函数用法与实例教程 MySQL如何写入特殊符号 php 如何存储和输出转义字符 mysql插入数据的问题 特殊字符 PHP 写入Mysql数据库,标记语言出现特殊符号! mysql模糊查询like中包含特殊字符在php中要如何处理 php向MYSQL数据库插入。 PHP页面编码GB2312 数据编码UTF-8 插入特殊符号是?号如何解决 php 如何将html转换成图片 php 如何实现html生成图片 php将html转换成图片问题 急!html提交数据给php,用php生成图片,如何在html中显示? PHP默认输出的是HTML代码,如何转换成效果输出? PHP HTML转图片代码相关资料哪里有? html提交数据给php,jpgraph用php生成图片,如何在当前html中显示? 怎么将HTML格式图片转换为普通图片格式。。。 php 和 html 交互问题。想让php返回一个图片网址,以便html来在输出图片。前端怎样获得php返回信息? php 如何把文字转成图片显示(象验证码那样) php 怎么获取当前函数名称 ?