2014-07-23 1 views
-1

나는이 값을 저장 GCM ID : AZaz09-_
공급 업체 식별자 : AZ09-
IMEI :,156,366,241,
PHP는 uniqid : az09살균 모바일 장치 ID는 내 데이터베이스에서

난 그냥 데이터베이스에 저장하기 전에 이러한 ID를 소독해야합니다.
그래서 위생 처리 방법을 잘 모르겠습니다.
PHP의 mysqli_real_escape_string은 옵션이지만 나는 preg_replace('/[^A-Za-z0-9\_]/', '', $deviceid)과 같은 솔루션을 선호합니다. 그러나 현재의 캐릭터 세트는 앞으로 변경 될 수 있습니까? 향후 변경 사항을 처리 할 수 ​​있도록 어떻게 위생 처리 할 수 ​​있습니까?

답변

1

PHP의 mysqli_real_escape_string는 옵션입니다하지만 난 preg_replace이다가

정지와 같은 솔루션을 선호합니다. 이 진술, 질문 및 탈출이 무엇인지를 이해하지 못하는 질문 태그로 분명합니다. 직접 질문에 대답하는 대신 설명해 보도록하겠습니다.

mysqli_real_escape_string()은 SQL 용 문자열을 이스케이프 처리합니다. 즉, SQL 문에서 문자열을 투명하게 사용할 수 있다는 것입니다. 즉, 데이터 명령과 혼동하지 마십시오. SQL 삽입은 데이터에 명령과 문자 사이의 구분자를 모호하게 만드는 문자가 데이터에 포함되어있을 때 발생합니다. SQL 주입을 피하려면 데이터를과 분리해야합니다. 이를위한 한 가지 방법은 그것을 탈출하는 것입니다.

더 나은 방법은 준비된 쿼리를 사용하는 것입니다. 이렇게하면 명령에서 모든 데이터가 분리되므로 원하는 데이터가 될 수 있으며 이스케이프가 필요하지 않습니다.

도 참조하십시오. https://stackoverflow.com/a/7810880/362536