>  기사  >  백엔드 개발  >  PHP에서 특수 기호가 포함된 데이터를 삽입하는 방법

PHP에서 특수 기호가 포함된 데이터를 삽입하는 방법

墨辰丷
墨辰丷원래의
2018-05-30 15:28:021779검색

특수 기호가 포함된 데이터를 삽입하기 위해 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()

처리 방법

PHP에서는 magic_quotes_gpc = On 코드 기능을 도입했습니다. > 아무런 처리 없이 데이터베이스에 작은따옴표를 직접 삽입할 수 있으므로 Off의 경우 운영 환경을 맹목적으로 신뢰하는 대신 작은따옴표 문제를 고려해야 합니다. <p><a href="http://www.php.cn/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.