2014-02-16 3 views
1

좋아요. 양식 데이터를 MYSQL에 보내는 양식과 PHP 파일이 있습니다. SQL 명령이 어포 스트로피를 닫는 구문 또는 다른 것으로 해석하고이를 삽입하지 않는다는 것을 이해합니다. 그러나 모든 아포스트로피 문자열을 바꿉니다. 이것은 html에 변수를 삽입하고 다시 삽입하려고 시도하기 전까지는 효과가있는 것으로 보입니다. 내 SQL에 $ 보고서를 삽입 할 때 문자열이 발생한 적이 교체 것처럼이, 가자하지 않습니다변수를 포함하는 양식에서 MYSQL에 변수 삽입

$c1=$_POST['c1']; 
$c1a=str_replace("'", "''", "$c1"); 

$report= ' 
<html> 
<body> 
<p align=\”left\”><strong>Comments:</strong></p> 
    <p align=\”left\”> 
    '.$c1a.' 
     <br> 
    </p></td><html> '; 

아래를 참조하십시오. 그러나 나는 그것을 테스트하기 위해 $ report를 echo 할 때 모든 아포 스트로피가 대체되기 때문에 그것이 발생했음을 안다. 무슨 일이야!

또한 여러 번 테스트했으며 양식 데이터에 아포스트로피가 포함되어 있지 않을 때 삽입 기능이 작동합니다.

+0

데이터베이스 필드 란 무엇입니까? VARCHAR? PHP 스크립트의 SQL 삽입 코드는 어떻게 생깁니 까? – pscs

+0

'''는 html에 대한 유효한 따옴표가 아닙니다. –

답변

0

작은 따옴표 앞에 백 슬래시를 추가해야합니다. mysql_real_escape_string() (또는 mysqli_real_escape_string()) 함수를 사용하여이를 수행 할 수있다.