2012-02-04 2 views
1

쿼리 문을 수행 할 수 없습니다. 1 행의 'member'열에 대해 잘못된 문자열 값 : \x96\xBC\x91O\x82\xCD...이 있습니다. 다음은 코드입니다.

$member=stripslashes($_POST["membername"]); 
    $link=mysql_connect(localhost,$username, $password) or die("unable to connect to database ".mysql_error()); 
    mysql_set_charset('utf8', $link); 
    mysql_selectdb($database) or die("unable to select db ".mysql_error()); 

    $query="SELECT*FROM members"; 
    $result=mysql_query($query); 

    $rowNum=mysql_num_rows($result)+1; 
    $query="INSERT INTO members VALUES ('$rowNum','$member','$memberemail','$memberpass','$memberRegDate','$memberRegDate','$memberIP')"; 
    mysql_query($query) or die("Unable to perform the query statement. ".mysql_error()); 

EDIT; 이미 UTF-8이 아니다이

ALTER DATABASE users CHARACTER SET UTF8 COLLATE UTF8_UNICODE_CI; 

ALTER TABLE members CHANGE name name varchar(100) character set utf8; 
+0

SQL 쿼리에 넣는다면 addslashes가 stripslashes가 아니길 원할 것입니다. 또한, mysql_real_escape_string을 사용하십시오. 문제가 해결 될지 확실하지 않지만 출발점입니다. 또한,'$ rowNum'이 프라이 머리 키가 아닌게 좋을 것입니다 ..... 그냥 자동으로 증가시키고 mysql_num_rows가 의미가 없다는 것에 신경 쓰지 마십시오. – mpen

+0

:(고맙지 만 작동하지 않습니다. – user1058272

+0

영문 이름 만 입력 할 수 있지만 한국어 회원은 사용할 수 없습니다. – user1058272

답변

0

로 내 DB를 변경합니다. 사용중인 charset을 확인하고 적절히 변환하려면 요청의 HTTP 헤더를 확인해야합니다.

>>> print '\x96\xBC\x91O\x82\xCD...'.decode('cp949') 
뼹멟궼... 
+0

그게 무슨 뜻입니까? 당신이 저를 도울 수 있습니까? 나는 일자리를 구할 자격이 없다는 표시를보고, 일주일이나 몇 주 후에 불이 났을 것입니다. – user1058272

관련 문제