2012-12-06 3 views
0

사용자가 PHP를 통해 MySQL 테이블에 저장할 다양한 필드에 아포스트로피를 입력 할 수 있도록하는 간단한 필요성이 있습니다. 사용자가이 정보를 볼 때 /를 사용하지 않고 반향되고 싶습니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까? 다음은 내 아이디어가 있습니다 :MySQL의 다이내믹 데이터 아포스트로피

  • 설정 위해서 stripslashes이 "'"앞뒤로

변환 내용

  • 에서 아포스트로피를 울리는 나는 또한 게시 된 데이터는 mysql_real_escape_string와 반드시 htmlspecialchars를 실행하고 있습니다 때. 이것을 처리하는 표준화 된 방법이 있습니까? 고맙습니다!

  • +1

    mysql_real_escape_string 사용 더 탈출 기능에 아포스트로피를 추가 할 경우에만 사용 addslashes()는, 단지 그것을 해제합니다. 탈출에 관해서는 m_r_e_s()는 괜찮지 만 더 좋은 접근법은 준비된 문장을 사용하는 것입니다 (mysqli 또는 PDO를보십시오) –

    +0

    Damien이 맞습니다 .PDO와 mysqli가 가장 좋습니다 –

    답변

    0

    아포스트로피를 입력하는 데 그리고 을 에코로 사용했다고 이미 말한대로 addslashes()을 사용할 수 있습니다. 당신 때문에 당신의 magic_quotes 설정으로 대부분의

    +0

    mysql_real_escape_string()은 이미 따옴표를 처리합니다. 안전하게 삽입 할 수 있습니다. addslashes를 사용하는 이유는 무엇입니까? –

    +0

    잘 Damien, 내가 항상 addslashes 이상 mysql_real_escape_string을 선호하지만,이 경우 그는 단지 아포스트로피를 피하기 위해, 그래서 내가 언급 한'addlslahes' 또한'mysql_real_escape_string' 반드시 슬래시를 탈출을 추가하지 않습니다, 최근 버전의 MySQL은 따옴표를 이스케이프 처리하기 전에 슬래시를 넣는 대신 두 개를 함께 사용하여 이스케이프 처리합니다. – Ravi

    +0

    요점은 SQL 시간에 작업이 끝나기 때문에 함수를 이스케이프 처리하고 내용에 영향을 미치지 않습니다. 따라서 mysql_real_escape 또는 인용 부호가 두 배로 나오는 것은 삽입 중에 만 발생하지만 데이터베이스 내부에서는 정상입니다. 실제로는 Addslashes를 사용하면 "물리적으로"슬래시가 추가되므로 텍스트에서 제거해야하므로 솔루션이 다소 잘못되었습니다. –