programing

mysql_escape_string VS mysql_real_escape_string

goodcopy 2021. 1. 14. 23:14
반응형

mysql_escape_string VS mysql_real_escape_string


그래서 이것은 우리 모두가 알아야 할 것입니다. 제가 처음 보았을 때 제 마음에 떠 올랐습니다 ..

나는 그것이 mysql_escape_string5.3에서 더 이상 사용되지 않는다는 것을 알고 있지만 mysql_real_escape_string.

내가 생각한 것은 mysql 리소스에 대한 두 번째 인수를 제외하고 mysql_real_escape_string정확히 동일 하다는 것 입니다 .mysql_escape_stringmysql_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_string5.3에서는 더 이상 사용되지 않지만 4.3.0 이상에서는 사용되지 않습니다. 따라서 PHP 버전 / 또는 4.3.0 이상을 사용하는 모든 사용자는 mysql_real_escape_string.

경우 사용 php < 4.3.0, 당신을보다 magic_quotes_gpc active가 업데이트를 추천하지만, 코드가 메이크업보다는 문제가있는 것입니다 경우 당신이 사용되지만, php.ini 파일에서 magic_quotes_gpcaddslash보다는 기능 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

반응형