mysql_escape_string VS mysql_real_escape_string
그래서 이것은 우리 모두가 알아야 할 것입니다. 제가 처음 보았을 때 제 마음에 떠 올랐습니다 ..
나는 그것이 mysql_escape_string
5.3에서 더 이상 사용되지 않는다는 것을 알고 있지만 mysql_real_escape_string
.
내가 생각한 것은 mysql 리소스에 대한 두 번째 인수를 제외하고 는 mysql_real_escape_string
정확히 동일 하다는 것 입니다 .mysql_escape_string
mysql_real_escape_string
그래서 나는 두 가지 기능이 필요하지 않기 때문에 문자열을 처리하는 방법에 약간의 차이가있을 것이라고 생각했습니다.
그래서 그 차이는 순전히 로케일과 문자 인코딩에 달려 있다고 생각했습니다. ?
누구든지 나를 위해 이것을 정리할 수 있습니까?
차이점은 mysql_escape_string
문자열을 원시 바이트로 취급하고 적절하다고 생각되는 곳에 이스케이프를 추가한다는 것입니다.
mysql_real_escape_string
반면에는 MySQL 연결에 사용되는 문자 집합에 대한 정보를 사용합니다. 즉, 멀티 바이트 문자를 적절하게 처리하는 동안 문자열이 이스케이프됩니다. 즉, 문자 중간에 이스케이프 문자를 삽입하지 않습니다. 이것이 당신이에 대한 연결이 필요한 이유입니다 mysql_real_escape_string
; 문자열을 어떻게 처리해야하는지 알기 위해 필요합니다.
그러나 이스케이프하는 대신 MySQLi 라이브러리에서 매개 변수화 된 쿼리를 사용하는 것이 더 좋습니다. 이전에는 이스케이프 루틴에 버그가 있었으며 일부는 다시 나타날 수 있습니다. 쿼리를 매개 변수화하는 것은 엉망이되기가 훨씬 더 어렵 기 때문에 MySQL 버그로 인해 손상 될 가능성이 적습니다.
음 .. 그래요. MySQL 연결의 문자 집합을 고려합니다.
http://php.net/mysql_escape_string
이 함수는 연결 처리기
mysql_real_escape_string()
를mysql_real_escape_string()
취하고 현재 문자 집합에 따라 문자열을 이스케이프 한다는 점 을 제외하고 는 동일합니다 .mysql_escape_string()
연결 인수를 사용하지 않으며 현재 문자 세트 설정을 따르지 않습니다.
mysql_escape_string
5.3에서는 더 이상 사용되지 않지만 4.3.0 이상에서는 사용되지 않습니다. 따라서 PHP 버전 / 또는 4.3.0 이상을 사용하는 모든 사용자는 mysql_real_escape_string
.
경우 사용 php < 4.3.0
, 당신을보다 magic_quotes_gpc active
가 업데이트를 추천하지만, 코드가 메이크업보다는 문제가있는 것입니다 경우 당신이 사용되지만, php.ini 파일에서 magic_quotes_gpc
및 addslash
보다는 기능 mysql_escape_string
.
이제이 두 함수는 모두 사용되지 않습니다.
PHP 4> = 4.3.0 및 PHP 5.
PDO_MySQL
확장 기능 사용을 권장 합니다.
참조 URL : https://stackoverflow.com/questions/3665572/mysql-escape-string-vs-mysql-real-escape-string
'programing' 카테고리의 다른 글
Android에서 개발 모드 및 릴리스 모드 환경 설정 구별 (0) | 2021.01.14 |
---|---|
HTML 텍스트 입력에서 텍스트를 선택할 때 강조 색상 변경 (0) | 2021.01.14 |
GUI 다운로더없이 NLTK 말뭉치 / 모델을 프로그래밍 방식으로 설치 하시겠습니까? (0) | 2021.01.14 |
ListView.addHeaderView ()를 호출 할 때 ClassCastException이 발생합니까? (0) | 2021.01.14 |
RedirectToAction에 모델을 어떻게 포함합니까? (0) | 2021.01.14 |