누군가 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
'MySql' 카테고리의 다른 글
MySQL : 특정 지점에서 자동 증가를 시작하려면 어떻게해야합니까? (0) | 2020.11.14 |
---|---|
MySQL 그룹화 기준-여러 조건-MySQL (0) | 2020.11.14 |
MySQL 타임 스탬프에서 Java 날짜로 변환 (0) | 2020.11.14 |
MySQL 테이블에 열이 너무 많으면 성능이 저하됩니까? (0) | 2020.11.14 |
MySQL Doctrine 2 DQL CONCAT 필드 및 상수 문자열 (0) | 2020.11.14 |
댓글