gpt4 book ai didi

mysql - Codeigniter/mySQL 问题。在实际插入之前检查是否可以进行多次插入

转载 作者:行者123 更新时间:2023-11-29 01:12:30 26 4
gpt4 key购买 nike

所以我尝试同时执行一些相互依赖的插入操作。假设我正在做一个狗评级网站。任何人都可以将一只狗添加到我的数据库中,但在这样做时他们还需要添加对该狗的初步评级。其他人随后可以对狗进行评价。 dogs to ratings 是多对一的关系:一只狗有很多评级。

这意味着对于我的初步添加,因为我已经有人给狗评分并添加了狗,所以我需要进行评分,并将外键设置为狗的主键。据我所知,这意味着我必须实际添加狗,然后检查新添加的主键是什么,然后在插入之前将其放入我的评级中。

现在假设评分的插入部分出了问题,无论是字符串太长,还是我不知何故忽略的地方。如果评级失败,则狗已被插入,但评级尚未插入。在这种情况下,我希望一开始就不要添加狗。

这是否意味着我必须编写代码来说明“如果评级失败,请删除狗”,或者如果一切按计划进行,是否有一种方法可以预测狗的 key 是什么。有没有办法说“保持那个位置”,然后如果一切正常,添加它?

如有任何帮助,我们将不胜感激。谢谢!!

最佳答案

CodeIgniter 使用事务简化了这个过程。

http://codeigniter.com/user_guide/database/transactions.html

注意:

In MySQL, you'll need to be running InnoDB or BDB table types rather than the more common MyISAM.

$this->db->trans_start();
$this->db->query('INSERT YOUR DOG');
$this->db->query('INSERT YOUR RATING');
$this->db->trans_complete();

if ($this->db->trans_status() === FALSE)
{
// Something went wrong, but nothing was committed to the database so you can handle the error here
}
else {
// Everything was added fine
}

关于mysql - Codeigniter/mySQL 问题。在实际插入之前检查是否可以进行多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2671169/

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