这是在php mysqli中使用rollback()的正确方法吗?

时间:2016-08-18 11:48:25

标签: php mysql mysqli transactions

我想在我的PHP代码中使用Transaction。我搜索并找到实现它的解决方案。但我不知道我的代码是否正确工作或通过此实现。如果条件正常,我需要在表中插入新用户,提交它,否则回滚插入的数据。但我不知道如果我不提交插入语句我需要在虚假部分回滚它。请指导我。 我需要知道我的插入查询是否有错误,否则部分是执行,rollback()方法在这种情况下做什么?没关系或者回滚另一个查询并产生无效的副作用吗?

$json = array();
$db->autocommit(FALSE);
$query_insert = sprintf("INSERT INTO tbl_user_x (user_email,user_password,user_reg_date,user_type_id_fk) VALUES ('%s','%s','%s','%s')",
    $db->real_escape_string($email),
    $db->real_escape_string(md5($password)),
    $db->real_escape_string($regdate),
    $db->real_escape_string($user_type)
);
$result_insert = $db->query($query_insert);
if ($db->affected_rows != 0 && !$db->error) {
    $json['result_action'] = "successful";
    $json['result_error'] = "null";
    $db->commit();
} else {
    $json['result_action'] = "fail";
    $json['result_error'] = $db->error;
    $db->rollback();
}
header("Content-type: application/json");
echo json_encode($json, JSON_UNESCAPED_UNICODE);

0 个答案:

没有答案