2012-10-21 43 views
0

錯誤接收:不正確的字符串值: ' xCC_a' 的列

錯誤編號:1366

不正確的字符串值: '\ xCC_a' 的列 '姓氏' 在第1行

UPDATE phppos_peoplefirst_name SET = '涓戈登',last_name = 'Garc_a',email = '[email protected]',phone_number = '', address_1 = '',address_2 = '',city = '',state = '',zip = ',country = '',comments = '' WHERE person_id = '238'

文件名: /庫/ Web服務器/文件/ PHP點銷售/模型/人.PHP

行 數:85

代碼:

//Skip first row 
fgetcsv($handle); 
while (($data = fgetcsv($handle)) !== FALSE) 
{ 
    $person_data = array(
    'first_name'=>$data[0], 
    'last_name'=>$data[1], 
    'email'=>$data[2], 
    'phone_number'=>$data[3], 
    'address_1'=>$data[4], 
    'address_2'=>$data[5], 
    'city'=>$data[6], 
    'state'=>$data[7], 
    'zip'=>$data[8], 
    'country'=>$data[9], 
    'comments'=>$data[10] 
    ); 

    $customer_data=array(
    'account_number'=>$data[11]=='' ? null:$data[11], 
    'taxable'=>$data[12]=='' ? 0:1, 
    'company_name' => $data[13], 
    ); 
    if($this->Customer->exists($data[14])) 
    { 
     $this->Customer->save($person_data,$customer_data,$data[14]); 
    } 
    else if(!$this->Customer->save($person_data,$customer_data)) 
    { 
     echo json_encode(array('success'=>false,'message'=>lang('customers_duplicate_account_id'))); 
     return; 
    } 
} 

數據庫列使用utf8_unicode_ci編碼

我試過使用utf8_encode,但沒有工作

+0

參見[UTF-8所有的通方式](http://stackoverflow.com/a/279279)。 – eggyal

+0

我看了這個,看起來我正在做所有這些,但我認爲這個問題與fgetcsv有關。 –

+0

請顯示連接到數據庫的代碼,然後執行'UPDATE'語句。 – eggyal

回答

1

您的編碼有問題。爲了解決這個問題,你應該在存儲之前調用函數utf8_encode,就像那樣。

$person_data = array(
'first_name' => $data[0], 
'last_name' => utf8_encode($data[1]), 
... 

我使用笨也和數據庫配置爲:

$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 
相關問題