所以我試圖調試一下,但我不知道爲什麼會發生這種情況。所以在從excel文件中檢索信息之後,我嘗試使用數據庫,對於大多數情況下這是有效的,但是我有兩個例外,這給我一個很難的時間。首先是零件號。 (例如:sxrv-11變成sxrv11)在db和第二個括號中(例如:(pv)被轉換爲1,所以(pv)tr55x將變成1tr55x)「012」,陣列的一個例子的var_dump:PHP - Codeigniter插入到DB時刪除短劃線和括號
array(20) {
["stock_no"]=>
float(127)
["part_no"]=>
string(9) "SIFR6A-11"
["pop_code"]=>
string(3) "D-N"
["jobber"]=>
float(15.2)
["sell_out"]=>
string(0) ""
["suggested_qty"]=>
float(4)
["box_qty"]=>
string(1) "1"
["case_qty"]=>
float(120)
["description"]=>
string(50) "LASER IRIDIUM SPARK PLUG/BOUGIE IRIDIUM AU LASER"
["individual_upc"]=>
string(12) "087295101278"
["box_upc"]=>
string(12) "087295001271"
["case_upc"]=>
string(14) "10087295001278"
["part_status"]=>
string(0) ""
["product_desc"]=>
string(0) ""
["box_size"]=>
string(0) ""
["fk_id_brand"]=>
int(1)
["fk_id_category"]=>
string(1) "1"
["fk_id_subcategory"]=>
string(1) "5"
["description_en"]=>
string(24) "laser iridium spark plug"
["description_fr"]=>
string(23) "bougie iridium au laser"
}
這是使用該數據陣列插入插入功能:
public function insert_product($product)
{
echo "<pre>";
var_dump($product);
echo "</pre>";
$this->db->set('fk_id_category', $product['fk_id_category']);
$this->db->set('fk_id_subcategory', $product['fk_id_subcategory']);
$this->db->set('fk_id_brand', $product['fk_id_brand']);
$this->db->set('stock_no', $product['stock_no']);
$this->db->set('part_no', $product['part_no']);
$this->db->set('pop_code', $product['pop_code']);
$this->db->set('jobber', $product['jobber']);
$this->db->set('part_status', $product['part_status']);
$this->db->set('sell_out', $product['sell_out']);
$this->db->set('suggested_qty', $product['suggested_qty']);
$this->db->set('box_qty', $product['box_qty']);
$this->db->set('case_qty', $product['case_qty']);
$this->db->set('description_en', $product['description_en']);
$this->db->set('description_fr', $product['description_fr']);
$this->db->set('product_desc', $product['product_desc']);
$this->db->set('box_size', $product['box_size']);
$this->db->set('individual_upc', $product['individual_upc']);
$this->db->set('box_upc', $product['box_upc']);
$this->db->set('case_upc', $product['case_upc']);
$this->db->insert('product');
}
一旦在數據庫它修飾以之前描述的示例。我試過不同的mysql排序規則,它不會改變任何東西。
關於這一切的最奇怪的部分是,「pop_code」在插入數據庫時保留「 - 」。它們分別是varchar()20和5。
我不知道這是一個PHP問題,codeigniter問題,mysql問題,phpmyadmin問題。有人有線索嗎?
你的 - > insert();添加以下模塊($ this-> db-> last_query());在這裏發佈輸出,看看它有什麼問題。 – ahmad