2014-10-02 172 views
0

我想將數據插入到我的數據庫中。我使用codeigniter框架來構建我的應用程序。 當我點擊提交按鈕,它不會給任何錯誤只是重新加載相同的頁面和數據在數據庫中沒有插入。 按照我的代碼將數據插入到數據庫 -無法使用codeigniter將數據插入到數據庫中

public function addSale($saleDetails = array(), $items = array(), $warehouse_id) 
    { 
      foreach($items as $data){ 
       $product_id = $data['product_id']; 
       $product_quantity = $data['quantity']; 
        $this->updateProductQuantity($product_id, $warehouse_id, $product_quantity); 
      } 


    // sale data 
    $saleData = array(
     'reference_no'   => $saleDetails['reference_no'], 
     'warehouse_id'   => $warehouse_id, 
     'biller_id'    => $saleDetails['biller_id'], 
     'biller_name'   => $saleDetails['biller_name'], 
     'customer_id'   => $saleDetails['customer_id'], 
     'customer_name'   => $saleDetails['customer_name'], 
     'date'     => $saleDetails['date'], 
     'note'     => $saleDetails['note'], 
     'internal_note'   => $saleDetails['internal_note'], 
     'inv_total'    => $saleDetails['inv_total'], 
     'total_tax'    => $saleDetails['total_tax'], 
     'total'     => $saleDetails['total'], 
     'total_tax2'   => $saleDetails['total_tax2'], 
     'tax_rate2_id'   => $saleDetails['tax_rate2_id'], 
     'inv_discount'   => $saleDetails['inv_discount'], 
     'discount_id'   => $saleDetails['discount_id'], 
     'user'     => $saleDetails['user'], 
     'shipping'    => $saleDetails['shipping'] 
    ); 

    if($this->db->insert('sales', $saleData)) { 
     $sale_id = $this->db->insert_id(); 

     $addOn = array('sale_id' => $sale_id); 
       end($addOn); 
       foreach ($items as &$var) { 
        $var = array_merge($addOn, $var); 
     } 

     if($this->db->insert_batch('sale_items', $items)) { 
      return true; 
     } 
    } 

    return false; 
} 

回答

0

基於https://ellislab.com/codeigniter/user-guide/database/examples.html,在我看來,那你缺少一條線 - >$這個 - > DB->插入(「銷售」,$ saleData );。你有它在一個if語句中,但如果語句不會將其作爲代碼執行,但檢查它是否返回true。

$saleData = array(
    'reference_no'   => $saleDetails['reference_no'], 
     'warehouse_id'   => $warehouse_id, 
     'biller_id'    => $saleDetails['biller_id'], 
     'biller_name'   => $saleDetails['biller_name'], 
     'customer_id'   => $saleDetails['customer_id'], 
     'customer_name'   => $saleDetails['customer_name'], 
     'date'     => $saleDetails['date'], 
     'note'     => $saleDetails['note'], 
     'internal_note'   => $saleDetails['internal_note'], 
     'inv_total'    => $saleDetails['inv_total'], 
     'total_tax'    => $saleDetails['total_tax'], 
     'total'     => $saleDetails['total'], 
     'total_tax2'   => $saleDetails['total_tax2'], 
     'tax_rate2_id'   => $saleDetails['tax_rate2_id'], 
     'inv_discount'   => $saleDetails['inv_discount'], 
     'discount_id'   => $saleDetails['discount_id'], 
     'user'     => $saleDetails['user'], 
     'shipping'    => $saleDetails['shipping'] 
       ); 

    $this->db->insert('sales', $saleData); 

這應該工作。您還可以檢查它是否成功 - >

return ($this->db->affected_rows() != 1) ? false : true; 
相關問題