当前位置: 首页 > 知识库问答 >
问题:

PHP Codeigniter,数组,$db->insert_batch()函数

易淳
2023-03-14

我对Codeigniter的insert_batch模型函数有一个问题,它似乎重新排列了在升序中传递给它的数组

Controller(获取所有的post数据并将其排列成数组):

    $product_id = $this->input->post('product_id');
    $colors = $this->input->post('color_name');
    $quantity = $this->input->post('product_quantity');
    $payment_option = $this->input->post('payment_option');
    $price = $this->input->post('product_price');

    $date = date('Y-m-d');

    $orders = array();
    $other_info = $this->business_mgmt->unique_details();

    for($i = 0; $i < count($product_id); $i++) {
        $color_id = $this->products_model->select_color_id($colors[$i]);

        $orders[] = array( 
                        'order_id' => null,
                        'invoice_number' => $other_info[0],
                        'customer_number' => $other_info[1],
                        'user_id' => 1,
                        'product_id' => $product_id[$i],
                        'color_id' => $color_id,
                        'quantity' => $quantity[$i],
                        'price' => $price[$i],
                        'order_date' => $date
                    );
    }

    $this->business_mgmt->insert_order($orders);

这是模型:

    function insert_order($order_details) {
         $this->db->insert_batch('exp_mcc_orders', $order_details); 
         print '<pre>';
         print_r($order_details);
         print '</pre>';
    }

下面是错误消息:

    Error Number: 1062

    Duplicate entry '0' for key 'PRIMARY'

    INSERT INTO `exp_mcc_orders` 
    (`color_id`, `customer_number`, `invoice_number`,`order_date`, `order_id`, `price`,
    `product_id`, `quantity`, `user_id`) 
    VALUES ('2','260','20130876617','2013-08-27',NULL,'15','4','4',1)

    Filename: C:\xampp\htdocs\MiracleCandleCompany\website\system\database\DB_driver.php

线路号: 330

提前谢谢。数据库中列的正确顺序是我在数组中使用的顺序。问题是codeigniter在提升中重新排列它。

共有2个答案

孙修贤
2023-03-14

我的order_id(主键)没有设置为auto_increment,我错误地将其他列设置为UNIQUE key。

鲁城
2023-03-14

尝试从数组中删除键order_id。还可以检查表exp_mcc_orders的设置,为列order_id-设置自动增量。

 类似资料:
  • 提供用户对应多角色的权限管理系统,兼容手机网页端,除了权限管理,还内含通用上传模块,只要在系统建立上传参数,即可任意表单上调用,不需要再写上传程序。 技术要求: 底层框架 CodeIgniter3.0 php>=5.5 mysql>=5.1 建议apache 初始数据库: db.sql 后台用户名/密码:aiw/adminadmin。 这次更新是基础框架,往后会逐步完善功能,主要是通用功能,如:通用审核,通用增删查改

  • 最近在本地主机上安装了Laravel,并在PhPMyadmin中创建了一个DB。正在尝试创建测试用户,但注册时出现以下错误: Illumb\Database\QueryException数据库主机阵列为空。(SQL:从中选择count(*)作为聚合,其中 这是迁移、. env还是配置错误? . env 配置 以前使用过php,但对Laravel框架来说是新的。请问我该如何更正? 谢谢你:)

  • 我试图在codeigniter中使用insertbatch将数据插入表中。当我在phpmyadmin sql查询中运行该查询时,我得到了该查询,它可以完美地工作。当我调用函数时,它不工作。 大堆 编码点火控制器 共点火器模型 SQL查询 当我在phpmyadmin中运行sql代码时,它可以完美地工作。

  • 不管怎样,我正在做的一个项目就是使用CosmosDB。他们已经创建了一些azure函数来插入和从Cosmos DB获取数据。我必须通过模拟本地机器中的Cosmos DB来测试这些功能。 我如何测试这些方法?如何在我的本地机器中模拟宇宙数据库?

  • 问题内容: 这不能按预期工作,因为创建数组时将执行数组中的每个函数。 通过执行以下操作来执行数组中任何函数的正确方法是: 谢谢! 问题答案: 然后在数组中执行给定函数时:

  • 我在将字符串数组插入mongo DB时遇到问题。在数组的特定大小之后,驱动程序挂起-不会抛出异常(超时或错误)。当我缩短长度时,一切正常。有人能解释这种奇怪的行为吗?很抱歉这个newbee问题,但我找不到一个现有的问题。 Mongo DB版本 非工作文档