我正在尝试使用带有CodeIgniter的函数insert_batch将来自表单的某些值作为数组插入。
控制器中的代码:
$data_product = array(
'quantity'=> $quantity,
'price'=> $price,
'productID'=> $product_id
);
$this->load->model('product_ordered');
$this->product_ordered->insert_quantity_products($data_product);
这是模型insert_quantity_products
中的代码public function insert_quantity_products($data){
$this->db->insert_batch('orders', $data);
}
这是数据库错误
Unknown column '0' in 'field list'
INSERT INTO `orders` (`0`, `1`, `2`) VALUES ('3','1','1'),
('358.00','458.00','324.00'), ('1','39','69')
未知列应为数量,价格和productID
我做错了什么?
答案 0 :(得分:2)
$this->load->model('product_ordered');
$this->product_ordered->insert_quantity_products();
在模型中
如果您使用单一输入,请使用此($this->db->insert
)
public function insert_quantity_products()
{
$data_product = array(
'quantity'=> $quantity,
'price'=> $price,
'productID'=> $product_id
);
$this->db->insert('orders', $data_product);
}
//生成:INSERT INTO orders (quantity, price, productID) VALUES ('$quantity', '$price', '$product_id')
如果您要批量插入,请使用此($this->db->insert_batch
)
public function insert_quantity_products()
{
$data_product = array(
array(
'quantity'=> $quantity,
'price'=> $price,
'productID'=> $product_id
);
array(
'quantity'=> $quantity2,
'price'=> $price2,
'productID'=> $product_id2
);
);
$this->db->insert_batch('orders', $data_product);
}
//生成:INSERT INTO orders (quantity, price, productID) VALUES ('$quantity', '$price', '$product_id'),('$quantity2', '$price2', '$product_id2')
答案 1 :(得分:0)
您尝试使用函数insert_batch
。
请检查文档:
第一个参数将包含表名,第二个参数是值的关联数组。
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
这是您必须如何设置数据的示例。
答案 2 :(得分:0)
您需要为$ data_product使用2维数组。 这意味着您将控制器更改$ data_product如下:
{ []}