summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xext/pdo/package.xml20
-rwxr-xr-xext/pdo/pdo.c2
-rwxr-xr-xext/pdo/pdo_dbh.c12
-rwxr-xr-xext/pdo/pdo_stmt.c4
-rwxr-xr-xext/pdo/php_pdo_int.h4
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);