0
MY PHP代码mysqli transaction
是mysqli_transaction不工作或我misundersatnd
<?php
/*db connection*/
$conn = mysqli_connect("localhost", "root", "", "test");
mysqli_autocommit($conn, FALSE);
$insert1 = mysqli_query($conn, "INSERT INTO user(name,age,gender) VALUES('DEEPU', 24, 'male')");
$insert2 = mysqli_query($conn, "INSERT INTO user(name,age,gender2) VALUES('ANIL', 25, 'male')");
mysqli_commit($conn);
mysqli_close($conn);
?>
我知道mysqli transaction
用于,如果事务中的任何操作失败,整个交易将失败。
问题:
在我的代码第二个查询是错误的,它使用gender2
,而不是gender
。由于一个查询失败,整个事务将失败。但是这里执行第一个查询并将数据插入到表中。我希望没有数据会插入表中,因为第二个查询失败。
我的代码中是否有任何错误?或者我完全误解了这一点。
如果我使用
mysqli_rollback($conn);
它带给pre-transactional
状态。我使用innoDB
引擎。
我需要什么
If both query is correct: data should insert.
If one is correct and other is wrong: no data will insert.
皮斯帮助...谢谢。