[s2container-php5:33] Re: S2Daoでのinsertについて
Eishi Kuroda
kuroda @ jetsetrecords.net
2006年 6月 16日 (金) 13:35:17 JST
ハタ様
回答ありがとうございます。
結論からいうと、問題は解決いたしました。
> 上記のコードで問題なく、私の環境ではうまくいきました。
>
> PHP5.1.4
> MySQL5.0.18
>
> エラーメッセージ等はどんなものが表示されていますでしょうか?
> あと、sqlファイルからの実行の場合はどうなりますか?
>
sqlファイルでもダメでした。
また、エラーメッセージ等は表示されません。
>
> 作成したスクリプトを以下に置いておきます。
> もしお時間がありましたら、検証してください。m(_ _)m
>
> http://php.xole.net/sample/empcopy.tar.gz
上記スクリプトでは、問題なく動作しました。
どうやらdaoやentity等、スクリプトの問題では無さそうです。
ですので他を疑ってみることにしました。
実は、今回の作業は、
s2base.php5のmoduleおよびgoyaコマンドで生成したディレクトリ内で
行っているのですが、
s2base.php5によって作成されたdiconディレクトリ内にあった
pdo.disonのS2Container_PDODataSourceのを書き換えて
そのまま使っていました。
その中で、
<property name="option">
array(PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING,
PDO::ATTR_AUTOCOMMIT => true);
</property>
という箇所があるのですが、
PDO::ATTR_AUTOCOMMIT => true
となっているのに全く気付いていませんでした。
そこで、こちらをfalseに変更してみたところ、希望通り動作しました。
ここがtrueのままだと、
多分、insert文の自動生成による挿入(function insert(EmpEntity $emp))も
全く利かないのだろうと思います。
今回試そうとしたinsert文以外には、selectしか試していなかったので
気付きませんでした。
S2Container_PDODataSourceのoptionプロパティがどのように使われるのか
分からないままですが、
もう少し色々やってみます。
では、ありがとうございました。
黒田映史
S2Container-PHP5 メーリングリストの案内