diff options
-rwxr-xr-x | ext/pdo/package.xml | 20 | ||||
-rwxr-xr-x | ext/pdo/pdo.c | 2 | ||||
-rwxr-xr-x | ext/pdo/pdo_dbh.c | 12 | ||||
-rwxr-xr-x | ext/pdo/pdo_stmt.c | 4 | ||||
-rwxr-xr-x | ext/pdo/php_pdo_int.h | 4 |
5 files changed, 26 insertions, 16 deletions
diff --git a/ext/pdo/package.xml b/ext/pdo/package.xml index c0d27de57a..19502be61e 100755 --- a/ext/pdo/package.xml +++ b/ext/pdo/package.xml @@ -41,13 +41,13 @@ <license>PHP</license> <release> <state>beta</state> - <version>0.2.4</version> - <date>2005-02-18</date> + <version>0.3</version> + <date>2005-03-08</date> <notes> -Note that PDO on its own is useless. -You need to install a PDO database driver to make use of it, -check http://pecl.php.net for a list of available PDO drivers. +You need to install a PDO database driver to make use of PDO, +check http://pecl.php.net/package-search.php?pkg_name=PDO +for a list of available PDO drivers. It is highly recommended that you update to the latest stable PHP 5 snapshot before using PDO. @@ -60,6 +60,16 @@ http://snaps.php.net/win32/PECL_5_0/php_pdo.dll You can find additional PDO drivers at: http://snaps.php.net/win32/PECL_5_0/ +- New fetch modes: + PDO_FETCH_FUNC, PDO_FETCH_GROUP, PDO_FETCH_UNIQUE, PDO_FETCH_CLASSTYPE +- New fetch mode for PHP 5.1 and higher: PDO_FETCH_SERIALIZE +- Changed signature for PDO::lastInsertId(); it is now: + string PDO::lastInsertId([string name]) + this allows arbitrary unique identifiers to be returned, and allows for + better support for RDBMS with sequences. +- Improved bound parameter emulation when using non-string types. +- PDOStatement implements SPL Traversable interface when SPL is present. + - Added PDO::quote($string). Closes PECL Bug #3393 - Fixed PDO::query() for drivers using bound parameter emulation. - Fixed PECL Bug #3434, crash when using odbc with named parameters. diff --git a/ext/pdo/pdo.c b/ext/pdo/pdo.c index b4f83ed042..4043b90f63 100755 --- a/ext/pdo/pdo.c +++ b/ext/pdo/pdo.c @@ -79,7 +79,7 @@ zend_module_entry pdo_module_entry = { PHP_RINIT(pdo), PHP_RSHUTDOWN(pdo), PHP_MINFO(pdo), - "0.2.4", + "0.3", STANDARD_MODULE_PROPERTIES }; /* }}} */ diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index f39b04e71f..f7e64b6b5b 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -385,7 +385,7 @@ static PHP_FUNCTION(dbh_constructor) } /* }}} */ -static zval * pdo_stmt_instanciate(zval *object, zend_class_entry *dbstmt_ce, zval *ctor_args TSRMLS_DC) /* {{{ */ +static zval * pdo_stmt_instantiate(zval *object, zend_class_entry *dbstmt_ce, zval *ctor_args TSRMLS_DC) /* {{{ */ { if (ctor_args) { if (Z_TYPE_P(ctor_args) != IS_ARRAY) { @@ -505,8 +505,8 @@ static PHP_METHOD(PDO, prepare) ctor_args = NULL; } - if (!pdo_stmt_instanciate(return_value, dbstmt_ce, ctor_args TSRMLS_CC)) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "Failed to instanciate statement class %s", dbstmt_ce->name); + if (!pdo_stmt_instantiate(return_value, dbstmt_ce, ctor_args TSRMLS_CC)) { + zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "Failed to instantiate statement class %s", dbstmt_ce->name); return; } stmt = (pdo_stmt_t*)zend_object_store_get_object(return_value TSRMLS_CC); @@ -829,8 +829,8 @@ static PHP_METHOD(PDO, query) PDO_DBH_CLEAR_ERR(); - if (!pdo_stmt_instanciate(return_value, pdo_dbstmt_ce, NULL TSRMLS_CC)) { - zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "Failed to instanciate statement class %s", pdo_dbstmt_ce->name); + if (!pdo_stmt_instantiate(return_value, pdo_dbstmt_ce, NULL TSRMLS_CC)) { + zend_throw_exception_ex(php_pdo_get_exception(), 0 TSRMLS_CC, "Failed to instantiate statement class %s", pdo_dbstmt_ce->name); return; } stmt = (pdo_stmt_t*)zend_object_store_get_object(return_value TSRMLS_CC); @@ -1165,7 +1165,7 @@ static void dbh_free(pdo_dbh_t *dbh TSRMLS_DC) pefree(dbh, dbh->is_persistent); } -static void pdo_dbh_free_storage(void *object TSRMLS_DC) +static void pdo_dbh_free_storage(zend_object *object TSRMLS_DC) { pdo_dbh_t *dbh = (pdo_dbh_t*)object; if (!dbh) { diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index e8bb2dd008..7092ad32f1 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -1861,7 +1861,7 @@ static void free_statement(pdo_stmt_t *stmt TSRMLS_DC) efree(stmt); } -void pdo_dbstmt_free_storage(void *object TSRMLS_DC) +void pdo_dbstmt_free_storage(zend_object *object TSRMLS_DC) { pdo_stmt_t *stmt = (pdo_stmt_t*)object; @@ -2182,7 +2182,7 @@ zend_object_handlers pdo_row_object_handlers = { NULL }; -void pdo_row_free_storage(void *object TSRMLS_DC) +void pdo_row_free_storage(zend_object *object TSRMLS_DC) { pdo_stmt_t *stmt = (pdo_stmt_t*)object; diff --git a/ext/pdo/php_pdo_int.h b/ext/pdo/php_pdo_int.h index 6f300ccec5..fed5c861f4 100755 --- a/ext/pdo/php_pdo_int.h +++ b/ext/pdo/php_pdo_int.h @@ -33,7 +33,7 @@ extern ZEND_RSRC_DTOR_FUNC(php_pdo_pdbh_dtor); extern zend_object_value pdo_dbstmt_new(zend_class_entry *ce TSRMLS_DC); extern function_entry pdo_dbstmt_functions[]; extern zend_class_entry *pdo_dbstmt_ce; -void pdo_dbstmt_free_storage(void *object TSRMLS_DC); +void pdo_dbstmt_free_storage(zend_object *object TSRMLS_DC); zend_object_iterator *pdo_stmt_iter_get(zend_class_entry *ce, zval *object TSRMLS_DC); extern zend_object_handlers pdo_dbstmt_object_handlers; int pdo_stmt_describe_columns(pdo_stmt_t *stmt TSRMLS_DC); @@ -42,7 +42,7 @@ int pdo_stmt_setup_fetch_mode(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, in extern zend_object_value pdo_row_new(zend_class_entry *ce TSRMLS_DC); extern function_entry pdo_row_functions[]; extern zend_class_entry *pdo_row_ce; -void pdo_row_free_storage(void *object TSRMLS_DC); +void pdo_row_free_storage(zend_object *object TSRMLS_DC); extern zend_object_handlers pdo_row_object_handlers; zend_object_iterator *php_pdo_dbstmt_iter_get(zend_class_entry *ce, zval *object TSRMLS_DC); |