특수 기호가 포함된 데이터를 삽입하기 위해 PHP를 사용해야 할 때 데이터가 정상적으로 삽입되지 않는 경우가 있는데, 이때 어떻게 해결해야 할까요? 최근 직장에서 이 문제가 발생하여 정보를 검색하여 해결했습니다. 이제 해결 방법을 모두와 공유하겠습니다.
문제 발견
mysql에 데이터를 쓸 때, 데이터에 특수 문자가 있으면 데이터가 제대로 저장되지 않습니다. 예:
mysql_query(”update table set `name`='make's'”);
이때는 정상입니다. 데이터의 특수 문자를 이스케이프하려면 addslashes()
함수를 사용하세요addslashes()
这个函数来转义数据中的特殊字符
处理方法
PHP为了安全性,所以引入了个magic_quotes_gpc = On
的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。
当magic_quotes_gpc = On
时,使用了addslashes()
处理后的数据在数据库中将以'形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个,因此stripslashes()
出场了,它能把去掉(区别于str_replace(””, “”,$Str)
)。
当magic_quotes_gpc = Off
时,使用了addslashes()
处理后的数据在数据库中将以'形式保存,没有上面说的有的问题,addslashes()
起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()
。
addslashes()
和stripslashes()
正好是相反的,直接记忆:addslashes()
加个,stripslashes()
去个
那么什么时候用呢?
简单说:
当magic_quotes_gpc = On
时,系统会自动处理单引号等问题,用不用addslashes()
和stripslashes()
都没关系,但是如果添加数据时用了addslashes()
, 那么显示数据时必须要stripslashes()
当magic_quotes_gpc = Off
时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes()
,显示数据时则不需要使用stripslashes()
。
既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:
不管magic_quotes_gpc
是On还是Off,咱添加数据时都用addslashes()
,当On时,必须使用stripslashes()
,Off时则不能用stripslashes()
처리 방법
magic_quotes_gpc = On 코드 기능을 도입했습니다. > 아무런 처리 없이 데이터베이스에 작은따옴표를 직접 삽입할 수 있으므로 Off의 경우 운영 환경을 맹목적으로 신뢰하는 대신 작은따옴표 문제를 고려해야 합니다. <p><a href="//m.sbmmt.com/php-weizijiaocheng-397857.html" target="_blank"></a><code>magic_quotes_gpc = On
일 때, addslashes()
를 사용하여 처리한 데이터는 '. 예상보다 콘텐츠가 많아서 stripslashes()
가 나타나면 제거할 수 있습니다(str_replace("", "",$Str)
와 다름). >) . magic_quotes_gpc = Off
일 때 addslashes()
를 사용하여 처리한 데이터는 위에서 언급한 문제 없이 '' 형태로 데이터베이스에 저장됩니다. addlashes()
stripslashes()
를 사용할 필요가 없습니다. addslashes()
와 stripslashes()
는 정반대입니다. 직접 메모리: addslashes()
하나 추가, stripslashes( )
magic_quotes_gpc = On
일 때 시스템은 작은따옴표와 같은 문제를 자동으로 처리합니다. addslashes()
및 stripslashes( )는 중요하지 않지만 데이터를 추가할 때 addslashes()
를 사용하는 경우 데이터를 표시할 때 stripslashes()
를 사용해야 합니다 magic_quotes_gpc = Off
일 경우 시스템에서는 작은따옴표 등의 문제를 처리하지 않으므로 데이터 삽입 시 addslashes()
를 사용해야 하지만, 사용할 필요는 없습니다. 데이터를 표시할 때 stripslashes()
.
magic_quotes_gpc
가 On인지 Off인지에 관계없이 데이터를 추가할 때 addslashes()
를 사용합니다. stripslashes()
를 사용해야 하며, Off인 경우 stripslashes()
를 사용할 수 없습니다. 🎜🎜위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 🎜🎜🎜🎜🎜관련 권장 사항: 🎜🎜🎜PHP는 시간 덧셈과 뺄셈 기능 strtotime을 구현합니다. 재귀 함수 방법 🎜🎜🎜🎜🎜🎜🎜🎜🎜위 내용은 PHP에서 특수 기호가 포함된 데이터를 삽입하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!