0

我有一张桌子叫lists. 此列表一次填充多行。第一次用 3 行填充表格。之后,此表的任何更新可能是 2 行或 6 行。

我想相应地删除/更新。这意味着,如果下一次更新的行数少于当前行数,则应删除其余行。或者,如果下一行大于当前行,则相应的行应该更新,其余行添加自动递增的 id。

我正在使用 CakePHP 2.6.7。

4

1 回答 1

1

我不确定我是否理解你的问题,但也许你想使用类似的东西Model::saveAll()

$data = array(
    array('id' => 1, 'body' => 'Comment 1'),
    array('id' => 2, 'body' => 'Comment 2')
);
$this->Comment->saveAll($data);

这将执行以下命令:

UPDATE `blog`.`comments` SET `id` = 1, `body` = 'Comment 1' WHERE `blog`.`comments`.`id` = 1

UPDATE `blog`.`comments` SET `id` = 2, `body` = 'Comment 2' WHERE `blog`.`comments`.`id` = 2

要删除多个记录,请使用Model::delete()

$this->Comment->delete(array(1, 2), false);

这将执行以下 SQL 命令:

DELETE `Comment` FROM `blog`.`comments` AS `Comment` WHERE `Comment`.`id` IN (1, 2)`

阅读更多关于Model::updateAll()Model::saveAll() 这里,关于Model::delete()Model::deleteAll() 这里

我希望它会帮助你。

于 2015-06-17T18:13:17.517 回答