ID: 40772 Updated by: [EMAIL PROTECTED] Reported By: vunnuk_o at ukr dot net -Status: Open +Status: Feedback Bug Type: PDO related Operating System: Win XP PHP Version: 5.2.1 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2007-03-12 10:59:24] vunnuk_o at ukr dot net >>This works on Linux (SQLite) but fails on Windows. >Which PHP version are you using? 5.2.1 >>Otherwise on Linux it leads to another error: >>The auto-commit mode cannot be changed for this driver >How is that related to your problem and how to reproduce it? It's not related; just telling that Ilia's code has an error: $d = new PDO('sqlite:test.db', NULL, NULL, array(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)); should be $d = new PDO('sqlite:test.db', NULL, NULL, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); ------------------------------------------------------------------------ [2007-03-12 09:22:42] [EMAIL PROTECTED] >This works on Linux (SQLite) but fails on Windows. Which PHP version are you using? >Otherwise on Linux it leads to another error: >The auto-commit mode cannot be changed for this driver How is that related to your problem and how to reproduce it? ------------------------------------------------------------------------ [2007-03-11 20:02:56] vunnuk_o at ukr dot net This works on Linux (SQLite) but fails on Windows. So still a bug. Also, your example has an error array(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)); should be array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); Otherwise on Linux it leads to another error: The auto-commit mode cannot be changed for this driver ------------------------------------------------------------------------ [2007-03-11 18:31:22] [EMAIL PROTECTED] Unfortunately on syntax errors SQLite returns a generic "error" message, which is why PHP returns HY000 error code. As far as constructor not support exception option setting, I cannot seem to replicate in SQLite. Here is the sample code I am using $d = new PDO('sqlite:test.db', NULL, NULL, array(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)); $d->query("SELETC * FROM test"); ------------------------------------------------------------------------ [2007-03-11 17:24:35] dennis at inmarket dot lviv dot ua Looks like PDO constructor does not like the PDO::ATTR_ERRMODE in the options array. This way works: $conn = new PDO($dsn, $user, $pass); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->query("SELETC * FROM test"); // throws a PDOException However, for SQLite the SQLSTATE still is HY000 instead of 42000 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/40772 -- Edit this bug report at http://bugs.php.net/?id=40772&edit=1