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

Eth*_*han 2 mysql codeigniter insert

所以我试图一次执行一些相互依赖的插入.假设我正在做一个狗评级网站.任何人都可以添加狗到我的数据库,但这样做他们还需要添加狗的初步评级.然后其他人可以对狗进行评级.收视率的狗是多对一的关系:狗有很多评级.

这意味着我的初步添加,因为我有人同时评价和添加狗,我需要取得评级,并设置一个外键给狗的主键.据我所知,这意味着我必须实际添加狗,然后检查新添加的主键是什么,然后在插入之前将其放入我的评级中.

现在假设评级的插入有问题,不管它是一个太长的字符串,还是我以某种方式忽略的东西.如果评级失败,则已经插入了狗,但评级没有.在这种情况下,我想首先没有添加狗.

这是否意味着我必须编写代码,说"如果评级失败,为狗做一个删除",或者是否有办法预测如果一切按计划进行,狗的关键是什么.有没有办法说"保持那个位置",然后如果一切正常,加上它?

任何帮助将不胜感激.谢谢!!

Fin*_*arr 6

CodeIgniter使用事务简化了此过程.

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

注意:

在MySQL中,您需要运行InnoDB或BDB表类型而不是更常见的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
}
Run Code Online (Sandbox Code Playgroud)