【问题标题】:Unable to insert data into database using codeigniter无法使用 codeigniter 将数据插入数据库
【发布时间】:2014-10-02 10:35:08
【问题描述】:

我想将数据插入我的数据库。我正在使用 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;
}

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    基于 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2013-04-04
      • 2016-09-18
      • 1970-01-01
      相关资源
      最近更新 更多