怎么用php实现插入数据库并进行转义操作?
发布时间:2022-09-12 17:16:10 所属栏目:MySql教程 来源:
导读: 这个开启时,通过GET,POST,COOKIE传递的数据会自动被转义。
如 test.php?id=abc'de"f
echo $_GET['id']; # 会得到 abc\'de\"f
magic_quotes_gpc=On; 这个开启了,对写入
如 test.php?id=abc'de"f
echo $_GET['id']; # 会得到 abc\'de\"f
magic_quotes_gpc=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 字符将不会进行转义。 我表单内容本来是: 对策一:修改php.ini文件(修改php.ini这个方法就不说了,大家可以google下) 对策二:把转义的给取消了 第一步:找到你提交的数据比如$_POST['content'],将其改成$content=stripslashes($_POST['content']); 第二步:以后在使用$POST['content']的地方都换成$content 第三步:提交到数据库,数据库储存还是正常的: 读出来又成了 (这个应该知道怎么解决了吧?要不我再罗嗦下吧) 第四步:将数据库读取的内容再用stripslashes()过滤一下。 stripslashes() 这个函数 ,删除由addslashes()函数添加的反斜杠。用于清理从数据库或 HTML 表单中取回的数据 ( PHP页面中如果不希望出现以下情况: 单引号被转义为 \' mybatis oracle 插入blob数据_oracle如何插入date类型数据_数据库插入操作 双引号被转义为 \" 那么可以进行如下设置以防止: 在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语句的执行。 “怎么用php实现插入数据库并进行转义操作”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注长城资源网网站,小编将为大家输出更多高质量的实用文章! (编辑:拼字网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


