我有一个主设备表,通过它的ID(FK)链接到其他表(特定的设备信息表)。检查是否所有插入在外键上都成功
因此,我的创建表单将特定设备类型信息(例如PC HDD大小,OS ...)插入适当的设备类型表(每个设备类型有一个),然后我将$ this-> db-> insert_id(),并将其与一般设备信息(如购买日期,授权截止日期等)一起插入主设备表中。
这个效果很好。但是,如果由于任何原因主表的数据无效 - 第二个查询将失败,并将插入的行留在适当的设备类型表中。
有没有一种方法来检查查询是否会成功之前实际执行我的模型中的完整功能?或者 - 如果第二个查询(或第三,第四...如果我有多个插入)失败,是否可以回滚更改?
我认为你最好检查为什么第二次插入查询失败的原因,为什么以及如何将无效数据加入到你的程序中?你忘了逃避一些字符串?还有别的吗? –
啊,这不是查询失败 - 我只是想知道一般 - 是否有办法确保插入代码本身。我的插入工作是因为我使用jQuery和后端的CI验证设置了前端验证,所以在插入和处理数据时这非常安全。 – Skipp