如何确保所有SQL查询运行没有错误?

时间:2014-01-30 16:43:19

标签: php mysql

我有三个不同的表,其中一列有关自动增量。当我运行注册PHP脚本时,它会将数据写入所有三个表,并且信息彼此相关。但是,如果我在其中一个脚本上出错,它会将数据保存在两个表中,例如ID = 4,而第三个表仍然有ID = 3的数据。以下是我的问题:

  1. 如何确保所有SQL查询都运行,如果其中一个失败,它根本不会运行并弄乱我的ID?

  2. 如果刷新了具有保存数据代码的页面并且因此运行多次,那么如何确保信息不会多次存储?

2 个答案:

答案 0 :(得分:1)

我建议您在sql中签出TRANSACTIONS。事务可以运行多个sql查询,条件是如果其中一个查询失败,整个事务将失败,因此数据库中不会保存任何数据。

答案 1 :(得分:1)

事务是一组连续的数据库操作操作,就像它是一个单独的工作单元一样。换句话说,除非组内的每个单独操作都成功,否则交易永远不会完成。如果事务中的任何操作失败,整个事务将失败。

实际上,您会将许多SQL查询添加到一个组中,并且您将作为事务的一部分一起执行所有这些查询。

阅读本教程关于MySQL transaction

的内容