MySQL的:交易?插入并更新

| 我需要做2查询。 基本上是
mysql_query(\"INSERT INTO table ($value1,$value2)\");
mysql_query(\"UPDATE table2 SET field1 = \'$value1\', field2 = \'$value2\'\");
我想我可以做一个
if (mysql_query(\"INSERT ...\") !== false) {
   mysql_query(\"UPDATE ...\");
}
在这种情况下,我应该使用交易吗?我应该如何使用它? 还是我可以这么简单吗? 谢谢     
已邀请:
如果您想要某种“全有或全无”行为,通常将使用事务。 基本上,通过交易,您可以: 开始交易 进行第一个查询 如果成功,请执行第二个查询 如果成功,则提交事务 否则,回滚事务-取消与该事务相对应的两个查询。 如果要使用
mysql_*
函数,则必须: 通过
START TRANSACTION
查询开始交易 进行查询 根据这些查询的结果,执行
COMMIT
ROLLBACK
查询。 要检测查询是否成功,您确实可以检查ѭ​​7ѭ的返回值:如果发生错误,它将返回
false
。 注意:MySQL是旧的扩展-它没有处理事务的功能;这意味着您必须将它们作为常规查询来处理。 使用MySQLi,您可以使用:
mysqli::autocommit()
禁用自动提交 和
mysqli::commit()
mysqli::rollback()
    
对于插入和更新,MySQL有一个很好的替代解决方案-\“ ON DUPLICATE KEY UPDATE \”。它可以在单个查询中安全地执行您想要的操作:
INSERT .... ON DUPLICATE KEY UPDATE
(在这种情况下,密钥也必须设置为唯一) http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html     

要回复问题请先登录注册