トップページ > プログラム > 2016年12月02日 > eDwctYwK0

書き込み順位&時間帯一覧

7 位/276 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000145



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ f1d6-BMT5)
デフォルトの名無しさん (ワッチョイ f1d6-eVYr)
【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net

書き込みレス一覧

【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


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。