无法使用codeigniter将数据插入数据库

时间:2014-10-02 10:35:09

标签: php mysql 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;
}

1 个答案:

答案 0 :(得分:0)

基于https://ellislab.com/codeigniter/user-guide/database/examples.html,在我看来,你错过了一条线 - > $ this-> db-> insert(' sales',$ saleData); 。你确实在if语句中有它,但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;