cakephp - 在单个查询中保存多行

标签 cakephp

是否有办法让 cake 在单个查询中执行多行插入,而无需编写原始 SQL 来执行此操作? saveMany 和 saveAssociated 选项只会在单个事务中保存多行,但该事务包含多个插入语句,因此这些方法显然不是编写繁重应用程序的解决方案。

感谢您的阅读。

最佳答案

尽管在应用程序代码中这样做并不常见,但这样做消除了使用几乎任何应用程序逻辑(验证规则、行为、事件等)的可能性。您可以通过 fixtures are loaded 的方式查看执行此操作的示例。 :

$db = ConnectionManager::getDataSource('default');

$table = "stuffs";
$fields = array('id', 'name');
$values = array(
    array(1, 'one'),
    array(2, 'two'),
    ...
);

$result = $db->insertMulti($table, $fields, $values);

您还可以找到this repository有用(直接或作为代码的基础),它将固定文件加载到您的应用程序数据库中 - 使用多重插入。

关于cakephp - 在单个查询中保存多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035559/

相关文章:

php - CakePHP - 使用不同的数据源动态加载模型

cakephp - 为什么使用 Doctrine 而不是 CakePHP 的标准数据库 ORM?

testing - CakePHP3 : Mock methods in integration tests?

php - 在 cakephp 3.x 的整个项目中使用一种日期格式

php - 服务器迁移后,在 CakePHP3 的请求数据中找不到“_Token”

sql - CakePHP - SQL 查询中的列别名

jquery - 由于某些验证而保存失败时,动态添加的表单字段会丢失

CakePHP Controller 测试 : Mocking the Auth Component

CakePHP 2.2 saveAll 多模型验证

mysql - CakePHP hasOne 关联返回不存在记录的空字段数组