[s2container-php5:42] Re: S2Daoでのselect ... insert intoの実行に関して

Yusuke Hata nowel @ xole.net
2006年 7月 4日 (火) 21:41:25 JST


ハタです。
すいません、捕捉です。

> > 
> > 色々試しましたが、
> > どうやらinto outfileの後にパラメータ(疑問符パラメータ、名前つきパラメータどちらも)
> > を置くことは出来ないようです。
> > windowsで成功するのが"たまたま"なのか、
> > FreeBSD側のPDOがおかしいのか、この他の環境がないので判断出来ないのですが、
> > 他の環境で再現するかどうかだけでも分かると助かるのですが・・・。
> > そもそも、PDOというよりもMySQLのプリペアドステートメントの扱いに
> > 問題があるのかも知れません。
> > (PDOが内部でmysql_stmt_prepare()を使っているようなので、そこら辺かな・・・と。)
> 

こちらに関して以下の環境で試してみました。
クライアント SuSE 10.1 / PHP5.1.4 /x86
サーバ 側は SuSE10.0 / x86

PDO::ATTR_EMULATE_PREPARES => true
MySQL5.0.18 => 成功ファイル出力もOK

PDO::ATTR_EMULATE_PREPARES => false
MySQL5.0.18 => エラー prepareで失敗

----
PDO::ATTR_EMULATE_PREPARES => true
MySQL4.1.10a => 成功ファイル出力もOK

PDO::ATTR_EMULATE_PREPARES => false
MySQL4.1.10a => エラー prepareで失敗

----
PDO::ATTR_EMULATE_PREPARES => true
MySQL4.0.20 => 成功ファイル出力もOK

PDO::ATTR_EMULATE_PREPARES => false
MySQL4.0.20 => 成功ファイル出力もOK # あ、あれ…


以上の結果だけ試してみました。
少なくともPDO::ATTR_EMULATE_PREPARESはMySQL4.1以降じゃないとちゃんと動かないみたいですね。
なぜMySQL4.0.20で動くのかは分からないですが
pdo_mysqlはバージョン毎に振舞が違っているのは確認済です、一応考慮しないといけないかもしれません。
以上、報告までに。


-- 
Yusuke Hata <nowel @ xole.net>
blog: http://blog.xole.net/


S2Container-PHP5 メーリングリストの案内