php写入数据库的数据为什么要转义,请详细的回答下

php写入数据库的数据为什么要转义,请详细的回答下,第1张

首先我们要知道,数据库都是由表构成的,当你把数据插入到其中的一个表中的时候,比如是数字呀、文字呀等等的插入的时候能正常插入,但是一旦你要插入特殊的字符,比如说插入下面这个括号里面的内容(“ABC”)到表里。如果不带引号的话ABC是能够插入进去的,但加上双引号以后,插入到表的时候,数据库会认为这对双引号是php语言里面的特殊字符,那么这对双引号就插入不进表格了,这时候只有通过转义,让数据库把这对双引号认为是和ABC三个字符一样。那就那能插入进去了。希望能对你有帮助。。

首先说明下magic-quote在PHP5.4版本中就已经废除了。详情请参考:https://www.php.net/manual/zh/info.configuration.php

1. magic_quotes_gpc和magic_quotes_runtime作用

magic_quotes_gpc主要是作用是自动转义GET/POST/COOKIES请求的数据,也就是自动执行 addslashes()。magic_quotes_gpc在5.4版本之前的配置中有两个值,分别是0(关闭)和1(开启),默认配置是1(开启)。

magic_quotes_runtime主要作用是自动转移sql,为了防止恶意攻击获取数据库信息。magic_quotes_runtime在5.4版本前的配置也有两个值,分别是0(关闭)和1(开启),默认配置是0(关闭)。

2. magic_quotes_gpc和magic_quotes_runtime的应用

假设提交过来的数据分别是$datastr= 'aaa'  $datafile= implode(file('demo.txt'))第一个数据是一个字符串,第二个是读取的文件信息,但是你不知道是否安全。就可以使用get_magic_quotes_gpc()和get_magic_quotes_runtime()进行判断。

应用示例

注意:一般来说为了运行效率会将get_magic_quotes_gpc()和get_magic_quotes_runtime()设置成常量进行判断

应用示例

主要是防止一些符号歧义造成数据错误。

如你要保存一个词don't。如果你的sql语句用单引号引的话就变成'don't',这时t'就没有意义了,会认为是一个错误语句。另一个原因是为了防止sql注入攻击用的


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

原文地址:https://54852.com/sjk/9892972.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存