[Codeigniter-users] DBエラー

Back to archive index

kunitsuji tsuji****@m-s*****
2009年 4月 14日 (火) 12:52:03 JST


 kunitsujiです。

原因特定できましたか。よかったです。
そう考えると、今後そのようなことが起きないようにするにはどうしていけばい
いのかが重要になりますね。

通常のORマッパー等は、テーブル単位でオブジェクトを作ったりしますので、あ
くまで操作するのはtrashオブジェクトということになります。
それに対してinsertするのは、trashモデルのみ、とするのが間違いが少ないの
かもしれませんね。

kazさんがどういうプログラム、ソースの構成、関数の作成をしているのかがわ
かりませんが、
できるだけ、作業を分担してその作業内容のみのものをクラスなりライブラリ、
ヘルパーとして用意する。
で、コントローラーではその作業フローにのっとって、処理は委譲するという記
述方法にできるだけするようにすれば、同じテーブルへのINSERTが何度も出てく
るのは少なくなるかも知れませんね。
まあ、コントローラで2回INSERT処理を動かせば一緒ですが、それはさすがに気
がつくでしょうし。

そういう意味では自分もCIのモデルの作成はいろいろ考えて無駄も多いプログラ
ムを書いています(笑)
今は機能別にモデルを書いていますが、これをテーブルごとに書いた方がいいの
かとか。
ただ、モデルからモデルを呼ぶことができない?のでテーブル単位のモデルとは
してません。

どのような形がいいんでしょうかね。いろいろ他の人の意見も聞いてみたいです。

だからドクトリンだよ!というのは別にしてw


>こんにちは、kazです。
>ありがとうございます。
>ソースを何回も見直してたら関数の中でinsertしてました。コピぺしてたときに間違
>ってコピーしていたようです。
>お騒がせしました。
>
>
>>  kunitsujiです。
>> 
>> エラーの内容を見ると、Duplicate entry 'hirakata20090411-1110-T1.mp3' for 
>> key 2、つまり、このファイルがユニークキーになっているにもかかわらず、重
>> 複してますよ、ということかと思います。
>> すでにこのファイル名のテーブルが存在しているとかないですか?
>> ト書きながら見たら、空のテーブルですか。
>> 
>> では考えられるのは。。。。
>> プログラムで挿入処理のところで、2回インサーと走らせていませんでしょう
>> か?ソース上で2回INSERTを実行し、1回目は成功、2回目でエラー、
>> でテーブル見たら1個ある。
>> そんなかんじではないかなぁと。
>
>_______________________________________________
>Codeigniter-users mailing list
>Codei****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index