『では今からバグなおしまーす。これはSQLエラーなんで、順番悪いか、なにか抜けてるのかといったところかな?』
なんてことを昨日書いたと思いますが、わかりやした。。。
なんか、接続が安定しないというか、エラーがランダムででてきよる。
理由は、「Non-persistent connections-非持続的データベース接続」と「Persistent connections-持続的データベース接続」でした。
実際にどこで別れるのかというと、ここ。
[Persistent connections持続的データベース接続]
$dbh = new PDO('odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=system;HOSTNAME=host;DATABASE=SxxxVxxx;NAMING=1;', 'user', 'pass', array(
ここ→ PDO::ATTR_PERSISTENT => false
));
[Non-persistent connections非持続的データベース接続]
$dbh = new PDO('odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=system;HOSTNAME=host;DATABASE=SxxxVxxx;NAMING=1;', 'user', 'pass', array(
ここ→ PDO::ATTR_PERSISTENT => true
));
エラーに「接続がきれます」なんてことがかいてあったらか、多分「非持続的」を最初に使ってたねこの場合、ロールバックされるときと、されずにエラーで終わっていたときがランダムにでてきていたことが理解できる。
だから、サーバーのライフサイクルを考えて接続を最後にきってやらないといけないのが、「接続的」、でトランザクションが処理された後に勝手に接続を切ってくれるのが「非接続的」。
こちらを読んで勉強してね。
ローカルから接続してたねこのマシーンが細かいトランザクションに間に合わなかったのかなぁ。。。
その辺はよーわかりません。
ねこでした。