我正在嘗試導入一些數據與codeigniter使用activerecord。我得到這個錯誤,因爲我不想重複這沒有任何意義,我Mysql重複輸入之前撇號
<p>Error Number: 1062</p>
<p>Duplicate entry 'L'' for key 'brand'</p>
<p>INSERT INTO `brands` (`brand`) VALUES ('L\'awlek')</p>
我對品牌表的唯一約束。我的問題是,爲什麼它在第一個撇號處減少了價值,並聲稱這是關鍵?
相關代碼:
define('TABLE','brands');
function add($data){
$exists = $this->exists($data['brand']);
if(! $exists)
$query = $this->db->insert(TABLE , $data);
return ! $exists ? $this->db->insert_id() : $exists;
}
function exists($value){
$query = $this->db->get_where(TABLE , array('brand'=>$value));
if($query && $query->num_rows() > 0){
return $query->row()->id;
} else {
return false;
}
}
該列是否定義爲varchar(2)或類似的東西? – Joni 2013-03-26 16:36:21
「品牌」列設置爲varchar(150) – Gorving 2013-03-26 16:37:59
是否定義了長度爲2的關鍵「品牌」? – Joni 2013-03-26 16:39:53