PHP и Postgresql: последовательная вставкаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP и Postgresql: последовательная вставка

Сообщение Anonymous »

У меня есть две таблицы, связанные внешним ключом.
Чтобы зарегистрировать пользователя, я хочу последовательно вставить его информацию в таблицу 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"));

Проблема в том, что если вторая вставка (в таблицу «access») не удалась, код для удаления последней вставки в таблицу «info< /strong>» не выполняется. Взамен я получаю только исключение SQLSTATE
и единственная строка в таблице "info" остается

Как я могу улучшить свой код? Или есть ли лучший способ обработки «последовательной вставки» с помощью php и postgresql?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ive-insert
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»