ID: 36578 Updated by: [EMAIL PROTECTED] Reported By: terry at bitsoup dot com -Status: Open +Status: Bogus Bug Type: PDO related Operating System: Windows XP PHP Version: 5.1.2 New Comment:
$s = oci_parse($c, "select 1 from dual where 1 = 2"); oci_execute($s); var_dump(oci_fetch($s)); => bool(false) and no error. Previous Comments: ------------------------------------------------------------------------ [2006-03-02 17:25:21] terry at bitsoup dot com The empty resultset is not the error. Calling fetch() on an empty resultset sets the error code to a warning and/or generates an exception in every database engine I've seen. In Oracle, it's error ORA-1403: no data found. It's SQL_NODATA in ODBC drivers. I believe it's Error 2053 in MySQL. mysql_stmt_fetch() returns MYSQL_NO_DATA, and not 0 for success. In it's current state, fetch() returning null without raising the exception means we'll have to add the test and throw the exception manually on every single query. ------------------------------------------------------------------------ [2006-03-02 08:42:51] [EMAIL PROTECTED] Empty resultset is not an error, it's a common situation. No bug here. ------------------------------------------------------------------------ [2006-03-01 20:01:39] terry at bitsoup dot com Sorry, error code should be 02, not 20 ------------------------------------------------------------------------ [2006-03-01 19:59:35] terry at bitsoup dot com Description: ------------ A fetch against a statment that returns an empty resultset doesn't set any PDO error information, nor does it raise an exception. Testing against MySQL 5.0.18 Reproduce code: --------------- Database connection is successful, and mode is set to throw exceptions: try { $sth = $dbh->prepare("SELECT * from any_table where 1=2"); $sth->execute(); $row = $sth->fetch(); echo "ERROR=" . $sth->errorCode(); } catch (PDOException $e) { dbg("DB Error!: " . $e->getMessage()); die(); } Expected result: ---------------- Either ERROR=20 when not using exceptions, or an exception. Actual result: -------------- ERROR=00 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36578&edit=1