我使用此代码在2个表中插入数据,
try {
array(PDO::ATTR_PERSISTENT => true);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
// 1st insert
$db->exec("insert into users (id, username, password,permission) values (18, 'raman', 2002,3)");
//2nd insert
$db->exec("insert into table_11 (id,user_id1,amount) values (14, '130', '11300')");
$db->commit();
} catch (Exception $e) {
$db->rollBack();
echo "Failed : " . $e->getMessage();
}
这段代码工作正常然而当我通过make第二次插入错误测试事务时我将表名更改为错误的表名,我发现第一次插入仍然工作并且能够添加新数据甚至第二次插入不起作用, 我的问题为什么第一次插入? 我使用MySQL。
答案 0 :(得分:0)
我发现为什么这段代码没有按预期工作,我应该在创建表时使用InnoDB,所以我删除了当前表并使用InnoDB存储引擎创建了新表,现在它工作正常。