summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/pdo/pdo.c14
-rw-r--r--ext/pdo/pdo_dbh.c20
2 files changed, 12 insertions, 22 deletions
diff --git a/ext/pdo/pdo.c b/ext/pdo/pdo.c
index a2b5decc5e..f2527a8583 100644
--- a/ext/pdo/pdo.c
+++ b/ext/pdo/pdo.c
@@ -100,7 +100,6 @@ zend_class_entry *pdo_dbh_ce, *pdo_dbstmt_ce, *pdo_row_ce;
Return array of available PDO drivers */
PHP_FUNCTION(pdo_drivers)
{
- HashPosition pos;
pdo_driver_t *pdriver;
if (zend_parse_parameters_none() == FAILURE) {
@@ -109,11 +108,9 @@ PHP_FUNCTION(pdo_drivers)
array_init(return_value);
- zend_hash_internal_pointer_reset_ex(&pdo_driver_hash, &pos);
- while ((pdriver = zend_hash_get_current_data_ptr_ex(&pdo_driver_hash, &pos)) != NULL) {
+ ZEND_HASH_FOREACH_PTR(&pdo_driver_hash, pdriver) {
add_next_index_stringl(return_value, (char*)pdriver->driver_name, pdriver->driver_name_len);
- zend_hash_move_forward_ex(&pdo_driver_hash, &pos);
- }
+ } ZEND_HASH_FOREACH_END();
}
/* }}} */
@@ -390,20 +387,17 @@ PHP_MSHUTDOWN_FUNCTION(pdo)
/* {{{ PHP_MINFO_FUNCTION */
PHP_MINFO_FUNCTION(pdo)
{
- HashPosition pos;
char *drivers = NULL, *ldrivers = estrdup("");
pdo_driver_t *pdriver;
php_info_print_table_start();
php_info_print_table_header(2, "PDO support", "enabled");
- zend_hash_internal_pointer_reset_ex(&pdo_driver_hash, &pos);
- while ((pdriver = zend_hash_get_current_data_ptr_ex(&pdo_driver_hash, &pos))) {
+ ZEND_HASH_FOREACH_PTR(&pdo_driver_hash, pdriver) {
spprintf(&drivers, 0, "%s, %s", ldrivers, pdriver->driver_name);
- zend_hash_move_forward_ex(&pdo_driver_hash, &pos);
efree(ldrivers);
ldrivers = drivers;
- }
+ } ZEND_HASH_FOREACH_END();
php_info_print_table_row(2, "PDO drivers", drivers ? drivers + 2 : "");
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c
index 43c9e9600e..ce123b259b 100644
--- a/ext/pdo/pdo_dbh.c
+++ b/ext/pdo/pdo_dbh.c
@@ -397,16 +397,15 @@ static PHP_METHOD(PDO, dbh_constructor)
options:
if (options) {
zval *attr_value;
- zend_string *str_key;
ulong long_key;
+ zend_string *str_key = NULL;
- zend_hash_internal_pointer_reset(Z_ARRVAL_P(options));
- while ((attr_value = zend_hash_get_current_data(Z_ARRVAL_P(options))) != NULL
- && HASH_KEY_IS_LONG == zend_hash_get_current_key(Z_ARRVAL_P(options), &str_key, &long_key, 0)) {
-
+ ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(options), long_key, str_key, attr_value) {
+ if (str_key) {
+ continue;
+ }
pdo_dbh_attribute_set(dbh, long_key, attr_value TSRMLS_CC);
- zend_hash_move_forward(Z_ARRVAL_P(options));
- }
+ } ZEND_HASH_FOREACH_END();
}
return;
@@ -1204,7 +1203,6 @@ static PHP_METHOD(PDO, __sleep)
Return array of available PDO drivers */
static PHP_METHOD(PDO, getAvailableDrivers)
{
- HashPosition pos;
pdo_driver_t *pdriver;
if (zend_parse_parameters_none() == FAILURE) {
@@ -1213,11 +1211,9 @@ static PHP_METHOD(PDO, getAvailableDrivers)
array_init(return_value);
- zend_hash_internal_pointer_reset_ex(&pdo_driver_hash, &pos);
- while ((pdriver = zend_hash_get_current_data_ptr_ex(&pdo_driver_hash, &pos)) != NULL) {
+ ZEND_HASH_FOREACH_PTR(&pdo_driver_hash, pdriver) {
add_next_index_stringl(return_value, (char*)pdriver->driver_name, pdriver->driver_name_len);
- zend_hash_move_forward_ex(&pdo_driver_hash, &pos);
- }
+ } ZEND_HASH_FOREACH_END();
}
/* }}} */