2012-08-01 73 views
2

如何使这个查询在蛋糕php?我用$this->saveAll(myData);。但是这种方法使用了5个查询来插入这些数据。 我想用一个查询插入这些数据。如何在Cake php中单一查询保存多行数据?

INSERT INTO `table` (`id`, `value1`, `value2`) VALUES 
(1, 1, 1,), 
(2, 1, 2), 
(3, 2, 2), 
(4, 2, 3), 
(5, 3, 3), 
+0

http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-savemany-array-data-null-array-options-array – 2012-08-01 12:45:37

+1

我想要保存此与一个MySQL查询 – EbinPaulose 2012-08-01 12:58:00

+0

也许建立你自己的查询?我不知道saveMany和saveAll使用了多个查询http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query – 2012-08-01 13:13:09

回答

0

试试这个方法:

$this->Model->saveMany($data); 

数据应该在这个格式:

Array 
(
[1] => Array 
    (
     [Model] => Array 
      (
       [field] => value 
       [field] => value 
      ) 

    ) 

[2] => Array 
    (
     [Model] => Array 
      (
       [field_1] => value 
       [field_2] => value 
      ) 

    ) 

1

您可以随时使用DboSource::insertMulti()

$data = array(
    'Model' => array(
    'field' => 'value', 
    'other' => 'another value' 
) 
); 
$ds = $this->Model->getDatasource(); 
$ds->insertMuli($this->Model->table, array_keys($data['Model']), $data['Model']); 
+0

嘿哈里斯,我觉得这个函数还会引发多个插入查询不是只有一个,不是吗? – Parixit 2016-03-23 07:01:45

+0

@Parixit不是根据代码本身:)如果你看insertMulit它只是做一个单一的INSERT – jeremyharris 2016-03-24 16:56:08

相关问题