0

2 つの mysql クエリの間で php スクリプトが終了する可能性はありますか?

ユーザー登録の例:

1st INSERT : 基本的な名、姓、住所を 1 つの表に入力します

2番目の挿入:ユーザーのハッシュされたパスワードとソルトを別のテーブルに入力します

この操作にはおそらく 2 つのクエリが必要であり、いずれかが単独では役に立たないレコードです。

最初のクエリを実行した後に php スクリプトが終了した場合はどうなりますか? ユーザーにはサーバー エラー メッセージが表示されますが、役に立たないレコードが 1 つ生成されます。

解決策はありますか??

編集 ------ 私の Web ホストは InnoDB エンジンを提供していません。MyISAM のみサポート

4

2 に答える 2

3

トランザクションを使用します。

START TRANSACTION;
INSERT INTO foo ...
INSERT INTO bar ...
COMMIT

いずれかの INSERT が失敗した場合ROLLBACK、トランザクションが終了し、「役に立たない」レコードが残ることはありません。

于 2013-07-26T19:42:43.147 に答える