2日程悩んだ。
ZendFrameworkでPDO使うと、bigint に8bit整数を入れようとして、PHP側でfloatで持っているとエラーが出ると言うお話。
http://bugs.php.net/bug.php?id=48924
DBに渡す時には無理やり、
$hoge = sprintf("%.0F",$fuga);
などして文字列型にしちゃってみると上手くいったりする。
ただの回避策だけど、自分のサーバーじゃないし、勝手にバージョンアップできないんで、回避策で逃げておくしかない。
ちなみに、(string) などでキャストすると、元が float なので、E+ が付いちゃってここで期待してるようなキャストはなされない。