- 【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
215 :デフォルトの名無しさん (ワッチョイ f1d6-BMT5)[sage]:2016/12/02(金) 22:16:14.16 ID:eDwctYwK0 - >>214
お前もその一味だってこと、いい加減に気付こうな。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
218 :デフォルトの名無しさん (ワッチョイ f1d6-BMT5)[sage]:2016/12/02(金) 23:14:32.24 ID:eDwctYwK0 - PDO::beginTransaction を実行すると、トランザクションがスタートします。
これは、 PDO::commitを実行することでDBの変更処理が確定します。 もし、不都合が生じた場合、 PDO::rollBackを行えばPDO::beginTransactionが開始されてから行った変更要求は全てキャンセルされ PDO::beginTransactionの前の状態に戻ることが保証されます。 これは、atomicな処理が求められる場合において、とても重要です。 ただし、PDO::rollBackがすべての要求を撤回できるわけではなく、 それは使用するデータベースの仕様に依存します。 例えば、MySQLではテーブルの作成や削除といった、DDLに類するSQLについて ロールバックが行えないことを留意する必要があります。 とはいえ、トランザクション機能を有する大抵のデータベースにおいて、 DMLについてはふつうにロールバックできると思って構いません。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
219 :デフォルトの名無しさん (ワッチョイ f1d6-BMT5)[sage]:2016/12/02(金) 23:23:17.30 ID:eDwctYwK0 - 例を示しましょう。
たとえば、ECサイトにて注文を行う場合を想定します。 あるユーザーの一つの注文においては、Orderテーブルにレコードを1つ追加し、 注文内容について、OrderItemsテーブルに注文種類ごとにレコードを1つ追加するとします。 もし仮にOrderテーブルに注文情報を追加した後、 OrderItemsテーブルのレコード追加で問題が発生したとします。 今場合、OrderItemsテーブルの登録のみをキャンセルすると、 予期しないオーダーが発生してしまいます。 こうした場合、最初にトランザクションを発行しておいて、 問題が発生した場合に直ちにPDO::rollBackを行うことで、 注文処理の全てをキャンセルすることが可能になるわけです。 もし、全ての処理が完了した場合は晴れてPDO::commitを実行することで、 DBの変更処理を確定させます。 こうした処理を、atomic(アトミック:原子性)と呼びます。 この意味は、「一連のものとして定義された処理がすべて完了するか、一つも実行されないかのいずれか状態になること」です。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
221 :デフォルトの名無しさん (ワッチョイ f1d6-BMT5)[sage]:2016/12/02(金) 23:35:26.44 ID:eDwctYwK0 - どういたしまして。サルとは違うのです。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
223 :デフォルトの名無しさん (ワッチョイ f1d6-eVYr)[sage]:2016/12/02(金) 23:49:34.38 ID:eDwctYwK0 - あたりめーだろ、サルw
職人が一文字一文字、心を込めて打ち込んでんだよw
|