2012-08-01 70 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

相關問題