2009-08-16 7 views
2

이 이상한 문제가 있습니다.다른 서버에서 mysql_real_escape_string이 작동하지 않습니다.

나는 내 웹 사이트 서버에서 실행
echo $comment_content = $_POST['comment_content']; 
echo $comment_content = mysql_real_escape_string($comment_content); 

, 그것은 출력 내가 다른 곳을 실행할 때 값이 1 회 (하지 두 번째)이 있지만, 그것은 바로 출력 :

나는이 스크립트가 (2 배). 그러나, 나는 동일한 사이트에서 여러 번 기능 mysql_real_escape_string을 사용하며 이전에는 결코 발생하지 않았습니다.

이것은 전체 코드입니다.

누구나 같은 문제가 있었습니까? 그렇다면 어떻게 수정 했습니까?

편집 : <?php ?> 태그도 있습니다.

+0

mysql_real_escape_string을 사용하면 안됩니다. 사용자 입력을 데이터베이스에 보내려면 바인딩 된 매개 변수를 사용해야합니다. 데이터베이스로 보내지는 않지만 HTML에 임베드하는 경우 적절한 기술을 사용해야합니다. –

+0

예를 들어 어떤 기술이 필요합니까? – Mike

답변

9

mysql_real_escape_string에는 기존 MySQL 연결이 필요합니다. 연결이 없으므로 이탈하지 않습니다.

+1

감사합니다. 그것은 그 것이었다. 그러나 다른 한편으로는, 내가 그것을 테스트하고 있던 다른 서버에서 어떻게 그것없이 그것도 효과가 있었습니까? :-) – Mike

+0

나는 그것이 어떻게 작동하는지 이해하지 못한다. 더 많은 것을 설명해 주길 바란다. – indago

+0

+1이 내 견과를 몰고 왔기 때문에 +1! 나는 너에게 +100을 줄 것이다. 감사 – jsherk

0

검색어와 연결을 확인하십시오. 올바르게 호출 한 경우 앞의 쿼리 또는 연결에 문제가 있으면 mysql_real_escape_string도 실패합니다. 처음 PHP + MySQL을 시작했을 때 나는 그 걸림돌을 때렸다.

+0

그래서 정확히 무엇을 찾아야합니까? :/ – Mike

+0

사실, 유효한 연결 데이터가 필요합니다. 그러나 PHP가 서버에 연결할 수없는 경우 일반적으로 적어도 하나의 큰 경고가 표시됩니다. – Thorarin

관련 문제