#40772 [Bgs->Opn]: PDO::query() does not raise exception

From: Date: Sun, 11 Mar 2007 20:02:56 +0000
Subject: #40772 [Bgs->Opn]: PDO::query() does not raise exception
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-110201@lists.php.net to get a copy of this message
ID: 40772 User updated by: vunnuk_o at ukr dot net Reported By: vunnuk_o at ukr dot net -Status: Bogus +Status: Open Bug Type: PDO related Operating System: Win XP PHP Version: 5.2.1 New Comment: 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 Previous Comments: ------------------------------------------------------------------------ [2007-03-11 18:31:22] iliaa@php.net 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 ------------------------------------------------------------------------ [2007-03-11 15:53:21] vunnuk_o at ukr dot net However, SQLite's errorCode() is HY000... should not be 42000? ------------------------------------------------------------------------ [2007-03-11 15:47:27] vunnuk_o at ukr dot net This happens for MySQL an SQLite ------------------------------------------------------------------------ [2007-03-11 14:42:16] iliaa@php.net What PDO back-end are you using? ------------------------------------------------------------------------ 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

« previous php.bugs (#110201) next »