MySQL 삽입을 위해 PHP에서 작은따옴표를 이스케이프 처리
MySQL 데이터베이스에 데이터를 삽입하려면 특수 문자가 포함된 문자열을 처리해야 하는 경우가 많습니다. 작은따옴표를 처리하는 것은 특히 까다로울 수 있습니다.
문제
두 개의 SQL 문을 사용하여 양식의 데이터를 삽입하고 처리하는 시나리오가 설명되었습니다. 데이터베이스에 데이터를 삽입하는 데 사용된 첫 번째 문은 문제 없이 작동했습니다. 그러나 데이터를 검색하고 이메일을 트리거한 두 번째 문은 이름에 작은따옴표(예: "O'Brien")가 포함되어 있으면 MySQL 오류로 인해 실패했습니다.
해결책
해결책은 데이터베이스에 삽입되는 문자열을 이스케이프 처리하는 것입니다. PHP는 이러한 목적으로 mysql_real_escape_string() 함수를 제공합니다. 작은따옴표와 같은 문자를 이스케이프된 해당 문자로 대체하여 오류와 데이터 손상을 방지합니다.
왜 동작이 다른가요?
두 문 사이의 동작이 다른 이유 Magic_quotes_gpc를 사용했기 때문일 가능성이 높습니다. 이 PHP 구성은 $_GET, $_POST 및 $_COOKIES에서 수집된 문자열을 자동으로 이스케이프합니다. 첫 번째 문에서는 양식에서 직접 데이터를 캡처했는데, 이렇게 자동 이스케이프가 적용되었습니다.
그런데 두 번째 문에서 데이터를 검색해 삽입하니 더 이상 이스케이프가 되지 않았습니다. 결과적으로 이름의 작은따옴표로 인해 MySQL 오류가 발생했습니다. mysql_real_escape_string()을 사용하면 두 문자열을 모두 적절하게 이스케이프하여 특수 문자가 올바르게 처리되고 데이터 무결성이 유지되도록 할 수 있습니다.
위 내용은 PHP를 사용하여 작은따옴표가 포함된 문자열을 MySQL에 안전하게 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!