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

Php 无法使用codeigniter将数据插入数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,我想将数据插入我的数据库。我正在使用codeigniter框架构建我的应用程序。 当我点击submit按钮时,它不会给出任何错误,只需重新加载相同的页面和数据,而不插入数据库。 按照我的代码将数据插入数据库- public function addSale($saleDetails = array(), $items = array(), $warehouse_id) { foreach($items as $data){ $pro

我想将数据插入我的数据库。我正在使用codeigniter框架构建我的应用程序。 当我点击submit按钮时,它不会给出任何错误,只需重新加载相同的页面和数据,而不插入数据库。 按照我的代码将数据插入数据库-

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;
}
根据,在我看来,您缺少一行->$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;