gpt4 book ai didi

php - 如何在 Yii 1.7 中以递归方式保存具有 HAS_MANY 关系的 MySql 表中的数据

转载 作者:行者123 更新时间:2023-11-29 21:08:45 24 4
gpt4 key购买 nike

我有 JSON 数据,我想一次将所有数据保存在数据库中。如图所示的数据库架构。所以我可以在这里看到二阶 HAS_MANY 关系。 yii 中的 esavelatedbehavior 允许我仅保存一阶数据,例如company_* 。有什么办法可以一次性将所有数据保存到所有表中吗? enter image description here

最佳答案

无法通过一次插入查询向多个表插入数据

您必须使用事务来执行多次插入

public function saveJsonData()
{

/**
* parsing your json data
*/

$transaction = Yii::app()->db->beginTransaction();

try {
$company = new Company();
$company->setAttributes($company_data);

if (!$company->save()) {
throw new Exception('some exception');
}

foreach ($otherCompanyRelatedDataList as $data) {
$otherCompanyData = new OtherCompanyData();
$otherCompanyData->setAttributes($data);
if (!$otherCompanyData->save()){
throw new Exception('some exception');
}
}

/**
* save other data
*/


$transaction->commit();

} catch (Exception $e) {
$transaction->rollback();
}
}

关于php - 如何在 Yii 1.7 中以递归方式保存具有 HAS_MANY 关系的 MySql 表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36591902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com