是否有办法让 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/