在cakephp中批量插入记录

Rin*_*rge 2 php cakephp

在cakephp中是否可以批量插入记录?

请尽可能回复我给我看一些样品?

我的查询看起来像

INSERT INTO `job_places` (`id`, `country_code`, `group`, `name`) VALUES
 (1, 'DE', 3, 'Hamburg'),
 (6, 'FFF', 1, 'Frankfurt');
Run Code Online (Sandbox Code Playgroud)

And*_*ong 6

你有这样saveAll的东西http://book.cakephp.org/1.3/view/1031/Saving-Your

用于保存(a)单个模型的多个单独记录或(b)此记录以及所有相关记录为了保存单个模型的多个记录,$ data需要是数字索引的记录数组,如下所示:

Array (

>     [Article] => Array(
>           [0] => Array
>               (
>                             [title] => title 1
>                         )
>           [1] => Array
>               (
>                             [title] => title 2
>                         )
>                 ) )
Run Code Online (Sandbox Code Playgroud)

在您的示例中,您需要格式化数据数组,如:

$data = array(
   'Job' => array(
      array('id' => 1, 'country_code' => 'DE', 'group' => 3, 'name' => 'Hamburg'),
      array('id' => 6, 'country_code' => 'FFF', 'group' => 1, 'name' => 'Frankfurt')
   )
);

$this->JobPlace->saveAll($data['Job']);
Run Code Online (Sandbox Code Playgroud)

当你正在学习某些东西时,没有什么比尝试更好了,所以给你一个去发布你遇到的任何问题,而不是等待有人发布你可以复制粘贴的确切代码.

  • 这种方法的一个缺点是,cake为每条记录创建一个查询.在这种情况下,它并不重要,但如果你尝试插入1000行,这是有道理的 (3认同)
  • 只需将Job模型名称与$ data $ this-> JobPlace-> saveAll($ data ['Job']); 否则它将无法工作 (2认同)