본문 바로가기
MySql

MySQL mysql_real_escape_string VS addslashes

by 베이스 공부 2020. 11. 14.
반응형

누군가 PHP 매뉴얼 에서이 두 기능의 차이점에 대해 밝힐 수 있습니까?

addlash : 데이터베이스 쿼리 등에서 인용해야하는 문자 앞에 백 슬래시가있는 문자열을 반환합니다. 이러한 문자는 작은 따옴표 ( '), 큰 따옴표 ( "), 백 슬래시 () 및 NUL (NULL 바이트)입니다.

mysql_real_escape_string : mysql_real_escape_string ()은 MySQL의 라이브러리 함수 mysql_real_escape_string을 호출하여 백 슬래시를 \ x00, \ n, \ r, \, ', "및 \ x1a 앞에 추가합니다.

내가 모은 것에서 주요 차이점은 \ x00, \ n \ r \ x1a입니다.

감사

 

해결 방법

 

당신이 인용 한 것은 아마도 문서에서 나온 것이지만 내가 아는 한 그것이 반드시 사실은 아닙니다.

addslash 는 일반적으로 방해가되는 문자에 슬래시를 추가합니다. mysql_real_escape_string 은 MySQL이 이스케이프해야하는 모든 것을 이스케이프합니다. 이것은 addslash 가 처리하는 것보다 더 많거나 적을 수 있습니다.

또한 mysql_real_escape_string 은 반드시 이스케이프를 위해 슬래시를 추가하는 것은 아닙니다. 그렇게하면 작동한다고 생각하지만 최근 버전의 MySQL은 앞에 슬래시를 넣는 대신 두 개를 함께 넣어 인용문을 이스케이프 처리합니다.

addslash 가 너무 많은 작업을 수행하거나 사용 목적에 맞지 않을 수 있기 때문에 항상 데이터 공급자의 이스케이프 함수를 addslash 대신 사용해야한다고 생각합니다. 반면에 mysql_real_escape_string 은 문자열을 쿼리에 삽입하기 위해 문자열을 준비하기 위해해야 ​​할 일을 알고 합니다. 항목을 이스케이프하는 방법에 대한 사양이 변경되고 갑자기 더 이상 사용해야하는 백 슬래시가 아니더라도 mysql_real_escape_string 이이를 인식하므로 코드가 계속 작동합니다.

 

참조 페이지 https://stackoverflow.com/questions/3473047

 

 

반응형

댓글