从表中获取最大值

时间:2015-05-05 07:46:48

标签: php codeigniter

我正在应用此查询:

$this->db->select_max('product_id');
        $this->db->from('products');
        $query=$this->db->get();
        return $query->result();

从表中获取最大值。

但是当我在另一个表中将此结果添加到db时。像这样:

$this->db->insert('images',$product_id);

显示此错误: 错误号码:1054

Unknown column 'Array' in 'field list'

INSERT INTO `images` (`product_id`) VALUES (Array)

Filename: C:\wamp\www\system\database\DB_driver.php

Line Number: 330

我正在使用codeigniter。

3 个答案:

答案 0 :(得分:1)

您在输入中应用了一个数组,我已经更新了您的代码

型号代码

$this->db->select_max('product_id');
$this->db->from('products');
$query=$this->db->get();
return $query->result_array();

控制器代码

$product_id = $this->Product_area_model->get_product_id();
$data['product_id'] = $product_id[0]['product_id'];
$result = $this->your_model->foo($data);

型号代码

function foo($data = ''){
   $this->db->insert('images',$data);
   return $this->db->insert_id();
}

答案 1 :(得分:0)

希望它对你有用......

SELECT id,
       min(time_insert),
       max(time_insert)
FROM   
       your_table t1
WHERE  
       status = 'Accepted' 
AND    time_insert > (
          SELECT
                  nvl(max(time_insert), to_date('01-JAN-1970', 'DD-MON-YYYY'))
          FROM 
                  your_table
          WHERE 
                  status = 'Failed'
          AND     id = t1.id
       )
GROUP BY id

答案 2 :(得分:0)

Codeigniter允许您指定值数组作为要插入的数据,但我认为您的问题是您正在插入数组数组

如果是这种情况,请使用批次功能...

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name' ,
      'date' => 'My date'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name' ,
      'date' => 'Another date'
   )
);

$this->db->insert_batch('mytable', $data); 

// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')