iliaa Tue, 12 Jan 2010 12:46:54 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=293447
Log: Fixed bug #50728 (All PDOExceptions hardcode 'code' property to 0) Bug: http://bugs.php.net/50728 (Open) All PDOExceptions hardcode 'code' property to 0 Changed paths: U php/php-src/branches/PHP_5_2/NEWS U php/php-src/branches/PHP_5_2/ext/pdo_dblib/dblib_driver.c U php/php-src/branches/PHP_5_2/ext/pdo_mysql/mysql_driver.c U php/php-src/branches/PHP_5_2/ext/pdo_oci/oci_driver.c U php/php-src/branches/PHP_5_2/ext/pdo_odbc/odbc_driver.c U php/php-src/branches/PHP_5_2/ext/pdo_pgsql/pgsql_driver.c U php/php-src/branches/PHP_5_2/ext/pdo_sqlite/sqlite_driver.c A php/php-src/branches/PHP_5_2/ext/pdo_sqlite/tests/bug50728.phpt U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_mysql/mysql_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_oci/oci_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_odbc/odbc_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_pgsql/pgsql_driver.c U php/php-src/branches/PHP_5_3/ext/pdo_sqlite/sqlite_driver.c A php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/bug50728.phpt U php/php-src/trunk/ext/pdo_dblib/dblib_driver.c U php/php-src/trunk/ext/pdo_firebird/firebird_driver.c U php/php-src/trunk/ext/pdo_mysql/mysql_driver.c U php/php-src/trunk/ext/pdo_oci/oci_driver.c U php/php-src/trunk/ext/pdo_odbc/odbc_driver.c U php/php-src/trunk/ext/pdo_pgsql/pgsql_driver.c U php/php-src/trunk/ext/pdo_sqlite/sqlite_driver.c A php/php-src/trunk/ext/pdo_sqlite/tests/bug50728.phpt
Modified: php/php-src/branches/PHP_5_2/NEWS =================================================================== --- php/php-src/branches/PHP_5_2/NEWS 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/NEWS 2010-01-12 12:46:54 UTC (rev 293447) @@ -13,6 +13,8 @@ - Fixed build of mysqli with MySQL 5.5.0-m2. (Andrey) +- Fixed bug #50728 (All PDOExceptions hardcode 'code' property to 0). (Joey, + Ilia) - Fixed bug #50680 (strtotime() does not support eighth ordinal number). (Ilia) - Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16). (Rob) Modified: php/php-src/branches/PHP_5_2/ext/pdo_dblib/dblib_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -255,7 +255,7 @@ dbh->driver_data = H; if (!ret) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, + zend_throw_exception_ex(php_pdo_get_exception(), DBLIB_G(err).dberr TSRMLS_CC, "SQLSTATE[%s] %s (severity %d)", DBLIB_G(err).sqlstate, DBLIB_G(err).dberrstr, Modified: php/php-src/branches/PHP_5_2/ext/pdo_mysql/mysql_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -106,7 +106,7 @@ #endif if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } /* printf("** [%s:%d] %s %s\n", file, line, *pdo_err, einfo->errmsg); */ Modified: php/php-src/branches/PHP_5_2/ext/pdo_oci/oci_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_oci/oci_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_oci/oci_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -173,7 +173,7 @@ /* little mini hack so that we can use this code from the dbh ctor */ if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); } return einfo->errcode; Modified: php/php-src/branches/PHP_5_2/ext/pdo_odbc/odbc_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -104,7 +104,7 @@ strcpy(*pdo_err, einfo->last_state); /* printf("@@ SQLSTATE[%s] %s\n", *pdo_err, einfo->last_err_msg); */ if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->last_error TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", *pdo_err, what, einfo->last_error, einfo->last_err_msg); } Modified: php/php-src/branches/PHP_5_2/ext/pdo_pgsql/pgsql_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -87,7 +87,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Modified: php/php-src/branches/PHP_5_2/ext/pdo_sqlite/sqlite_driver.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_2/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -78,7 +78,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Added: php/php-src/branches/PHP_5_2/ext/pdo_sqlite/tests/bug50728.phpt =================================================================== --- php/php-src/branches/PHP_5_2/ext/pdo_sqlite/tests/bug50728.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/ext/pdo_sqlite/tests/bug50728.phpt 2010-01-12 12:46:54 UTC (rev 293447) @@ -0,0 +1,16 @@ +--TEST-- +Bug #50728 (All PDOExceptions hardcode 'code' property to 0) +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php +try { + $a = new PDO("sqlite:/this/path/should/not/exist.db"); +} catch (PDOException $e) { + var_dump($e->getCode()); +} +?> +--EXPECTF-- +int(14) Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/NEWS 2010-01-12 12:46:54 UTC (rev 293447) @@ -11,6 +11,8 @@ (Ilia) - Added stream_resolve_include_path(). (Mikko) +- Fixed bug #50728 (All PDOExceptions hardcode 'code' property to 0). (Joey, + Ilia) - Fixed bug #50680 (strtotime() does not support eighth ordinal number). (Ilia) - Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16). (Rob) Modified: php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -255,7 +255,7 @@ dbh->driver_data = H; if (!ret) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, + zend_throw_exception_ex(php_pdo_get_exception(), DBLIB_G(err).dberr TSRMLS_CC, "SQLSTATE[%s] %s (severity %d)", DBLIB_G(err).sqlstate, DBLIB_G(err).dberrstr, Modified: php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -691,7 +691,7 @@ char errmsg[512]; ISC_STATUS *s = H->isc_status; isc_interprete(errmsg, &s); - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), H->isc_status[1] TSRMLS_CC, "SQLSTATE[%s] [%d] %s", "HY000", H->isc_status[1], errmsg); } Modified: php/php-src/branches/PHP_5_3/ext/pdo_mysql/mysql_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -127,7 +127,7 @@ if (!dbh->methods) { PDO_DBG_INF("Throwing exception"); - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Modified: php/php-src/branches/PHP_5_3/ext/pdo_oci/oci_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_oci/oci_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_oci/oci_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -173,7 +173,7 @@ /* little mini hack so that we can use this code from the dbh ctor */ if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); } return einfo->errcode; Modified: php/php-src/branches/PHP_5_3/ext/pdo_odbc/odbc_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -104,7 +104,7 @@ strcpy(*pdo_err, einfo->last_state); /* printf("@@ SQLSTATE[%s] %s\n", *pdo_err, einfo->last_err_msg); */ if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->last_error TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", *pdo_err, what, einfo->last_error, einfo->last_err_msg); } Modified: php/php-src/branches/PHP_5_3/ext/pdo_pgsql/pgsql_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -87,7 +87,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Modified: php/php-src/branches/PHP_5_3/ext/pdo_sqlite/sqlite_driver.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/branches/PHP_5_3/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -78,7 +78,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Added: php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/bug50728.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/bug50728.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/bug50728.phpt 2010-01-12 12:46:54 UTC (rev 293447) @@ -0,0 +1,16 @@ +--TEST-- +Bug #50728 (All PDOExceptions hardcode 'code' property to 0) +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php +try { + $a = new PDO("sqlite:/this/path/should/not/exist.db"); +} catch (PDOException $e) { + var_dump($e->getCode()); +} +?> +--EXPECTF-- +int(14) Modified: php/php-src/trunk/ext/pdo_dblib/dblib_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_dblib/dblib_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -255,7 +255,7 @@ dbh->driver_data = H; if (!ret) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, + zend_throw_exception_ex(php_pdo_get_exception(), DBLIB_G(err).dberr TSRMLS_CC, "SQLSTATE[%s] %s (severity %d)", DBLIB_G(err).sqlstate, DBLIB_G(err).dberrstr, Modified: php/php-src/trunk/ext/pdo_firebird/firebird_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_firebird/firebird_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_firebird/firebird_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -686,7 +686,7 @@ char errmsg[512]; ISC_STATUS *s = H->isc_status; isc_interprete(errmsg, &s); - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), H->isc_status[1] TSRMLS_CC, "SQLSTATE[%s] [%d] %s", "HY000", H->isc_status[1], errmsg); } Modified: php/php-src/trunk/ext/pdo_mysql/mysql_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_mysql/mysql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -127,7 +127,7 @@ if (!dbh->methods) { PDO_DBG_INF("Throwing exception"); - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Modified: php/php-src/trunk/ext/pdo_oci/oci_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_oci/oci_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_oci/oci_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -173,7 +173,7 @@ /* little mini hack so that we can use this code from the dbh ctor */ if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s]: %s", *pdo_err, einfo->errmsg); } return einfo->errcode; Modified: php/php-src/trunk/ext/pdo_odbc/odbc_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_odbc/odbc_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -85,15 +85,9 @@ einfo->what = what; strcpy(*pdo_err, einfo->last_state); -/* printf("@@ SQLSTATE[%s] %s\n", *pdo_err, einfo->last_err_msg); */ if (!dbh->methods) { -#if PHP_VERSION_ID > 50200 - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->last_error TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", *pdo_err, what, einfo->last_error, einfo->last_err_msg); -#else - zend_throw_exception_ex(php_pdo_get_exception(TSRMLS_C), 0 TSRMLS_CC, "SQLSTATE[%s] %s: %d %s", - *pdo_err, what, einfo->last_error, einfo->last_err_msg); -#endif } } /* }}} */ Modified: php/php-src/trunk/ext/pdo_pgsql/pgsql_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_pgsql/pgsql_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -87,7 +87,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Modified: php/php-src/trunk/ext/pdo_sqlite/sqlite_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:33:17 UTC (rev 293446) +++ php/php-src/trunk/ext/pdo_sqlite/sqlite_driver.c 2010-01-12 12:46:54 UTC (rev 293447) @@ -102,7 +102,7 @@ } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "SQLSTATE[%s] [%d] %s", + zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode TSRMLS_CC, "SQLSTATE[%s] [%d] %s", *pdo_err, einfo->errcode, einfo->errmsg); } Added: php/php-src/trunk/ext/pdo_sqlite/tests/bug50728.phpt =================================================================== --- php/php-src/trunk/ext/pdo_sqlite/tests/bug50728.phpt (rev 0) +++ php/php-src/trunk/ext/pdo_sqlite/tests/bug50728.phpt 2010-01-12 12:46:54 UTC (rev 293447) @@ -0,0 +1,16 @@ +--TEST-- +Bug #50728 (All PDOExceptions hardcode 'code' property to 0) +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php +try { + $a = new PDO("sqlite:/this/path/should/not/exist.db"); +} catch (PDOException $e) { + var_dump($e->getCode()); +} +?> +--EXPECTF-- +int(14)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php