I spent a bit of time looking at a mismatch between pdo_mysql and MYSQL_OPT_RECONNECT. There is some rather odd code in pdo_mysql/mysql_driver.c:
http://lxr.php.net/xref/PHP_5_4/ext/pdo_mysql/mysql_driver.c#640 There are two main problems here 1. This code is inside an if(driver_options) conditional so unless you pass a driver option to the constructor this code doesn't get run. if it wasn't for the second bug, we would have this odd side-effect behaviour that setting any random option would also turn on automatic reconnects 2. The #ifdef MYSQL_OPT_RECONNECT doesn't work at all because MySQL options are in an enum and thus obviously not available to the preprocessor. So, because of these bugs when MySQL turned off auto-reconnects in 5.0.3 everyone has been running with them off despite pdo_mysql's intent to turn them back on. Fixing these bugs now to make the code do what it was intended to do would be a BC break. My suggestion is to just expose MYSQL_OPT_RECONNECT as a normal user-settable option (which wouldn't be available under mysqlnd) and leaving it off by default. Looking through the bug db this was actually partially reported a while ago in bug 58863. Johannes/Stas is exposing MYSQL_OPT_RECONNECT ok for 5.3/5.4? I suppose it is a grey area between a feature change and a bug fix in this case. -Rasmus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php