利用環境
cakephp2 2.4.10
PHP 5.3.29
MySQL 5.1.73
実現したいこと
php(cakephp2)でsave処理が成功するが、DBには保存されていない事象が発生しています。
原因がわからず、特定手段を教えていただけないでしょうか。
発生している問題
下記のような処理で、DBにデータを登録・更新しているのですが、DB内のテーブルを見ても値が更新されませんでした。
2つの環境で同じソースで試したところ片方は正常に登録・更新され、もう片方はされない状況です。
追加
saveはforeach内で繰り返し行い、正常だった場合はcommitして
エラー等があった場合はcontinueでスキップします。
$transaction = $this->TransactionManager->begin(); try { foreach($datas as $data){ if (!$this->Table->save(data)) { //失敗時の処理 continue; } $this->TransactionManager->commit($transaction); } } catch (Exception $e) { $this->TransactionManager->rollback($transaction); }
試したこと
・save直前に登録データをログに出力して誤りが無いか確認 → 問題ありませんでした。
・saveの戻り値をログに出力 → 問題なく配列が返ってきました。
・validateにはじかれているかと思い、saveの第2引数へfalseを入れましたが登録・更新されませんでした。
・接続先DBに誤りがあるのかと思いましたが、他の処理では正常に更新・登録されてました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。