개발 (localhost)에서 프로덕션으로 HTML 양식을 이동 중이며 초기 테스트에서 프로덕션 MySQL 데이터베이스에 나타나는 이스케이프 문자가 localhost 데이터베이스에 나타나지 않는 문제를 확인했습니다.MySQL에 나타나는 이스케이프 문자
양식 처리 파일에서 문자를 이스케이프 처리하기 위해 mysql_real_escape_string
을 사용하고 있습니다. 로컬 호스트 데이터베이스에서 이러한 문자가 올바르게 저장되며 아포스트로피 또는 따옴표 만 있으면됩니다.
그러나 프로덕션으로 이동하면 양식은 여전히 올바르게 처리되지만 데이터베이스 레코드에는 아포스트로피 또는 따옴표 기호 앞에 백 슬래시 이스케이프 문자가 표시됩니다. 레코드가 인쇄되면 백래시가 나타나고 이는 허용되지 않습니다.
로컬 호스트와 프로덕션이 다른 버전의 MySQL을 실행하고있는 경우 (localhost는 5.5.24-log를 실행하고 프로덕션은 5.0.95-log를 실행 중임)를 제외하면 다른 점은 없습니다. 나는 그것이 ISP에 의해 관리되는 것처럼 생산 버전에 대한 통제권이 없다. 그래서 이것이 문제가되지 않기를 바란다.
희망적으로 말이 되겠습니까? 어떤 도움이라도 대단히 감사합니다.
[mysql_ *'functions] (http://stackoverflow.com/questions/12859942/why-shouldnt-use-mysql-functions-in-php)를 사용하지 마십시오. 더 이상 사용하지 않습니다. (공식적으로 권장되지 않음) (https://wiki.php.net/rfc/mysql_deprecation). 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보고 [PDO] (http://us1.php.net/pdo) 또는 [MySQLi] (http : //)를 사용하십시오. us1.php.net/mysqli). [이 기사] (http://php.net/manual/en/mysqlinfo.api.choosing.php)를 사용하면 결정하는 데 도움이됩니다. –
PHP 구성을 확인 했습니까? –
'stripslashes()'에 추가하거나 준비된 문장으로 얻으십시오. –