デジハリ081115
昨晩、19時~21時。PHP講座第11回目。
情報デザインフォーラムの懇親会を中座させていただき、元町駅からみなとみらい線で横浜に向かう。
本日の内容は、ショッピングカートで[注文確定]を押したときのトランザクション。[注文確定]すると、購入テーブルと購入詳細テーブルが更新される仕組みになっているが、もし、後処理のデータベース操作にミスが出た場合、2つのテーブルの整合性が取れなくなってしまう。
これは成功した場合に遷移する画面。実際に、後処理のSQL文を意図的にスペルミスして実行すると、エラー画面(error.php)に遷移し、phpMyAdminでデータベースを表示すると、前処理の分だけ更新処理が行なわれていた。これを防ぐ機能の実習をした。
すでに3分の1の受講生がドロップアウトしている。分かりやすさと時間短縮のため、今回は、用意したソースコードに工夫をしてあった。トランザクション処理を行なうSQL文「bigin/rollback/commit」を空白にして、いずれかが入るとコメントをつけている。
もちろん、最初に入るのが「begin」。
途中の条件分岐の中に幾度と出る、エラーの場合の「rollback」。
問題がなければ確定するために「commit」。
次回が最終回。
管理画面から、特定のメンバーの特定の月のデータを表示させて、このECサイトを終える。
そして、レンタルサーバでPHP+MySQLの環境を実現するための注意、という予告。
| 固定リンク
この記事へのコメントは終了しました。
コメント