2012-09-20 3 views
0

텍스트 블록을 가져 와서 SQL 데이터베이스에 삽입하는 양식을 만들었습니다. 사용자가 작은 따옴표를 사용하면 계속 SQL 오류가 발생합니다. addslashes() 함수를 추가하고 모든 것이 잘되었습니다. 하지만 w3에 따르면, php는 이미이 작업을 수행해야합니다. 또한 데이터베이스에서 텍스트를 검색하면 모든 아포스트로피가 문자로 바뀝니다.이스케이프 아포스트로피에서 예상치 못한 문자가 발생했습니다.

무슨 일이 일어나는지 아는 사람 있습니까? 나는 어디서부터 시작해야할지 모른다.

+1

db 인코딩뿐만 아니라 데이터를 추출하는 페이지 인코딩을 확인하십시오. – Satya

+0

mysql_real_escape_string을 사용하여 여전히 발생하는지 확인하십시오. – Night2

답변

0

모두에게 감사드립니다.

mysql_escape_string()가 작동했습니다. 기록을 위해, addslashes()는 아포스트로피를 역행으로 바꾸고있었습니다. 문제

0

이러한 함수를 사용하여 db 또는 db에서 데이터를 삽입하십시오.
이렇게하면 작은 따옴표 나 큰 따옴표 및 모든 특수 문자 문제가 해결됩니다.

function DBin($string) 
{ 
    return trim(htmlspecialchars($string,ENT_QUOTES)); 
} 

function DBout($string) 
{ 
    $string = trim($string); 
    return htmlspecialchars_decode($string,ENT_QUOTES); 
}