2008/07/13(日)PDO buffered query

個人的な作り物。
コアの部分はperlで書いて1日で出来たのだけど、設定用のWebUIが全然作れない。ちなみにWebUIはPHPで書いてる。

で、PDOで絶賛はまり中。
Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
とか言われるんですが...
こちらでも同じようなことではまってらっしゃる方おられる模様。

別に仕様としてそれでいいんですが、PDOStatmentクラスって明示的に結果を破棄するメソッドってないのね?
perlのDBIだと$sth->finish()で明示的に破棄できるんですが。

pdo-mysqlの説明にはattributeを指定するのは移植性が低いからfetchAllを使えと書いてあるのですが、それもなんだかなぁ。


ところでPDOってprepareに失敗してもexception投げないんですね。
例外でハンドリングできるだろうと高を括ってたら全然違うところでエラーになるんでやんの。


追記:
PHPからMySQLのクエリ送信のバッファリングについて - gounx2の日記
まとまってたので。