Чтобы зарегистрировать пользователя, я хочу последовательно вставить его информацию в таблицу info и учетные данные в доступ к таблице.
Но когда вторая вставка не удалась (по какой-либо причине), я хотел бы отменить (удалить) первую.
Вот часть кода:
Код: Выделить всё
// Data going to table "info"
$info = array(
"fname" => $_POST["fname"],
"lname"=> $_POST["lname"]
);
// if insert into table "info" is successfull
if ($lastInsertID = $this->model->addUser("info", $info)) {
// Data going to table "access"
$access = array(
"id" => $lastInsertID,
"password" => $_POST["password"],
"group" => "users",
"privilege" => 0,
);
// insert into table "access"
if ($this->model->addUser("access", $access)) {
echo json_encode(array("success"));
}
else {
// if insert into table "access" fails
// remove the last insert into table "info"
$this->model->deleteUser("info", $lastInsertID);
echo json_encode(array("error", "access"));
}
}
else echo json_encode(array("error", "info"));
и единственная строка в таблице "info" остается
Как я могу улучшить свой код? Или есть ли лучший способ обработки «последовательной вставки» с помощью php и postgresql?
Подробнее здесь: https://stackoverflow.com/questions/786 ... ive-insert
Мобильная версия