2012-02-04 91 views
1

無法執行查詢語句錯誤的字符串值:\x96\xBC\x91O\x82\xCD...第1行的列'member'。 以下是代碼。

$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;我已經改變我的數據庫,因爲這

ALTER DATABASE users CHARACTER SET UTF8 COLLATE UTF8_UNICODE_CI; 

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

如果您要將其添加到SQL查詢中,您希望添加不帶stripslashes。另外,使用'mysql_real_escape_string'。不知道這是否能解決您的問題,但這是一個起點。另外,'$ rowNum'最好不要成爲你的主鍵.....只要將它設爲自動增量,不要擔心這個mysql_num_rows無意義。 – mpen 2012-02-04 05:49:29

+0

:(謝謝但它不起作用 – user1058272 2012-02-04 06:03:46

+0

我只能插入Enlish名字的成員,但是韓文成員失敗 – user1058272 2012-02-04 06:04:51

回答

0

這不是UTF-8。您應該查看請求中的HTTP標頭以查看正在使用的字符集並進行適當的轉換。

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

這是什麼意思你能爲我提供幫助嗎?我看到有跡象表明我沒有資格獲得這份工作,並可能在一週或幾周後失火。 – user1058272 2012-02-04 06:37:31