]> granicus.if.org Git - php/commitdiff
added ext/mysqli for PHP4. This version doesn't support OO-function calls
authorGeorg Richter <georg@php.net>
Sat, 17 May 2003 14:15:58 +0000 (14:15 +0000)
committerGeorg Richter <georg@php.net>
Sat, 17 May 2003 14:15:58 +0000 (14:15 +0000)
ext/mysqli/config.m4
ext/mysqli/mysqli.c
ext/mysqli/mysqli_api.c
ext/mysqli/mysqli_fe.c
ext/mysqli/mysqli_nonapi.c
ext/mysqli/php_mysqli.h
ext/mysqli/tests/042.phpt
ext/mysqli/tests/047.phpt

index 2c32818e508ebdd68072e4e856e39f7e4edc04cd..c646a084fbadc457d8e40d6fd192d0bbb91ad54e 100644 (file)
@@ -41,5 +41,5 @@ if test "$PHP_MYSQLI" != "no"; then
   ])
 
   PHP_SUBST(MYSQLI_SHARED_LIBADD)
-  PHP_NEW_EXTENSION(mysqli, mysqli.c mysqli_api.c mysqli_nonapi.c mysqli_fe.c mysqli_profiler.c mysqli_profiler_com.c, $ext_shared)
+  PHP_NEW_EXTENSION(mysqli, mysqli.c mysqli_api.c mysqli_nonapi.c mysqli_fe.c, $ext_shared)
 fi
index f5b856c08c30974727c8e3c4d6b94f523b8c051c..8f2f7ea8e050c136716a74663039914d5716f70b 100644 (file)
@@ -34,8 +34,7 @@
 #define MYSQLI_USE_RESULT 1
 
 ZEND_DECLARE_MODULE_GLOBALS(mysqli)
-static zend_object_handlers mysqli_object_handlers;
-PR_MAIN *prmain;
+int le_mysqli_link, le_mysqli_result, le_mysqli_stmt;
 
 /* {{{ php_clear_stmt_bind */
 void php_clear_stmt_bind(STMT *stmt)
@@ -68,65 +67,6 @@ void php_clear_stmt_bind(STMT *stmt)
 }
 /* }}} */
 
-/* {{{ mysqli_objects_dtor
- */
-static void mysqli_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
-{
-       mysqli_object   *intern = (mysqli_object *)object;
-       MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr;
-
-       /* link object */
-       if (intern->zo.ce == mysqli_link_class_entry) {
-               if (my_res && my_res->ptr) {
-                       mysql_close(my_res->ptr);
-               }
-       } else if (intern->zo.ce == mysqli_stmt_class_entry) { /* stmt object */
-               if (my_res && my_res->ptr) {
-                       php_clear_stmt_bind((STMT *)my_res->ptr);
-               }
-       } else if (intern->zo.ce == mysqli_result_class_entry) { /* result object */
-               if (my_res && my_res->ptr) {
-                       mysql_free_result(my_res->ptr);
-               }
-       }
-       my_efree(my_res);
-       zend_objects_destroy_object(object, handle TSRMLS_CC);
-}
-/* }}} */
-
-/* {{{ mysqli_objects_clone
- */
-static void mysqli_objects_clone(void *object, void **object_clone TSRMLS_DC)
-{
-       /* TODO */
-}
-/* }}} */
-       
-/* {{{ mysqli_objects_new
- */
-PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_type TSRMLS_DC)
-{
-       zend_object_value retval;
-       mysqli_object *intern;
-       zval *tmp;
-
-       intern = emalloc(sizeof(mysqli_object));
-       intern->zo.ce = class_type;
-       intern->zo.in_get = 0;
-       intern->zo.in_set = 0;
-       intern->ptr = NULL;
-
-       ALLOC_HASHTABLE(intern->zo.properties);
-       zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
-       zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
-
-       retval.handle = zend_objects_store_put(intern, mysqli_objects_dtor, mysqli_objects_clone TSRMLS_CC);
-       retval.handlers = &mysqli_object_handlers;
-
-       return retval;
-}
-/* }}} */
-       
 /* {{{ mysqli_module_entry
  */
 zend_module_entry mysqli_module_entry = {
@@ -154,11 +94,11 @@ ZEND_GET_MODULE(mysqli)
 /* {{{ PHP_INI_BEGIN
 */
 PHP_INI_BEGIN()
-       STD_PHP_INI_ENTRY_EX("mysqli.max_links",                        "-1",   PHP_INI_SYSTEM,         OnUpdateLong,           max_links,                      zend_mysqli_globals,            mysqli_globals, display_link_numbers)
+       STD_PHP_INI_ENTRY_EX("mysqli.max_links",                        "-1",   PHP_INI_SYSTEM,         OnUpdateInt,            max_links,                      zend_mysqli_globals,            mysqli_globals, display_link_numbers)
        STD_PHP_INI_ENTRY("mysqli.default_host",                        NULL,   PHP_INI_ALL,            OnUpdateString,         default_host,           zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_ENTRY("mysqli.default_user",                        NULL,   PHP_INI_ALL,            OnUpdateString,         default_user,           zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_ENTRY("mysqli.default_pw",                          NULL,   PHP_INI_ALL,            OnUpdateString,         default_pw,                     zend_mysqli_globals,            mysqli_globals)
-       STD_PHP_INI_ENTRY("mysqli.default_port",                        "3306", PHP_INI_ALL,            OnUpdateLong,           default_port,           zend_mysqli_globals,            mysqli_globals)
+       STD_PHP_INI_ENTRY("mysqli.default_port",                        "3306", PHP_INI_ALL,            OnUpdateInt,            default_port,           zend_mysqli_globals,            mysqli_globals)
        STD_PHP_INI_ENTRY("mysqli.default_socket",                      NULL,   PHP_INI_ALL,            OnUpdateStringUnempty,  default_socket, zend_mysqli_globals,            mysqli_globals)
 PHP_INI_END()
 
@@ -175,7 +115,35 @@ static void php_mysqli_init_globals(zend_mysqli_globals *mysqli_globals)
        mysqli_globals->default_user = NULL;
        mysqli_globals->default_pw = NULL;
        mysqli_globals->default_socket = NULL;
-       mysqli_globals->profiler = 0;
+}
+/* }}} */
+
+/* {{{ _close_link */
+static void _close_link(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+{
+       MYSQL *mysql = (MYSQL *)rsrc->ptr;
+       void (*handler) (int);
+
+       handler = signal(SIGPIPE, SIG_IGN);
+       mysql_close(mysql);
+    mysql = NULL;
+       signal(SIGPIPE, handler);
+}
+/* }}} */
+
+/* {{{ _close_result */
+static void _close_result(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+{
+       MYSQL_RES *result = (MYSQL_RES *)rsrc->ptr;
+       mysql_free_result(result);
+}
+/* }}} */
+
+/* {{{ _close_stmt */
+static void _close_stmt(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+{
+       STMT *stmt = (STMT *)rsrc->ptr;
+       php_clear_stmt_bind(stmt);
 }
 /* }}} */
 
@@ -187,12 +155,10 @@ PHP_MINIT_FUNCTION(mysqli)
        ZEND_INIT_MODULE_GLOBALS(mysqli, php_mysqli_init_globals, NULL);
        REGISTER_INI_ENTRIES();
 
-       memcpy(&mysqli_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-       mysqli_object_handlers.clone_obj = zend_objects_store_clone_obj;
-
-       REGISTER_MYSQLI_CLASS_ENTRY("mysqli", mysqli_link_class_entry, mysqli_link_methods);
-       REGISTER_MYSQLI_CLASS_ENTRY("mysqli_result", mysqli_result_class_entry, mysqli_result_methods);
-       REGISTER_MYSQLI_CLASS_ENTRY("mysqli_stmt", mysqli_stmt_class_entry, mysqli_stmt_methods);
+       /* register destructors */
+       le_mysqli_link   = zend_register_list_destructors_ex (_close_link, NULL, "mysqli_link", module_number);
+       le_mysqli_result = zend_register_list_destructors_ex (_close_result, NULL, "mysqli_result", module_number);
+       le_mysqli_stmt   = zend_register_list_destructors_ex (_close_stmt, NULL, "mysqli_stmt", module_number);
        
        /* mysqli_options */
        REGISTER_LONG_CONSTANT("MYSQLI_READ_DEFAULT_GROUP", MYSQL_READ_DEFAULT_GROUP, CONST_CS | CONST_PERSISTENT);
@@ -277,11 +243,6 @@ PHP_MINIT_FUNCTION(mysqli)
        REGISTER_LONG_CONSTANT("MYSQLI_NEED_DATA", MYSQL_NEED_DATA, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("MYSQLI_NO_DATA", MYSQL_NO_DATA, CONST_CS | CONST_PERSISTENT);
 
-       /* profiler support */
-       REGISTER_LONG_CONSTANT("MYSQLI_PR_REPORT_STDERR", 1, CONST_CS | CONST_PERSISTENT);
-       REGISTER_LONG_CONSTANT("MYSQLI_PR_REPORT_PORT", 2, CONST_CS | CONST_PERSISTENT);
-       REGISTER_LONG_CONSTANT("MYSQLI_PR_REPORT_FILE", 3, CONST_CS | CONST_PERSISTENT);
-
        return SUCCESS;
 }
 /* }}} */
@@ -318,18 +279,6 @@ PHP_RSHUTDOWN_FUNCTION(mysqli)
                efree(MyG(error_msg));
        }
 
-       if (MyG(profiler)) {
-               if (prmain->header.child) {
-                       php_mysqli_profiler_report((PR_COMMON *)prmain, 0);
-               }
-               switch (prmain->mode) {
-                       case MYSQLI_PR_REPORT_FILE:
-                               fclose(prmain->fp);
-                               efree(prmain->name);
-                       break;
-               }
-       }
-
        return SUCCESS;
 }
 /* }}} */
@@ -362,10 +311,8 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
        MYSQL_FIELD             *fields;
        MYSQL_ROW               row;
        unsigned long   *field_len;
-       PR_RESULT               *prresult;
-       PR_COMMAND              *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|l", &mysql_result, mysqli_result_class_entry, &fetchtype) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &mysql_result, &fetchtype) == FAILURE) {
                return;
        }
 
@@ -377,9 +324,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
                fetchtype = override_flags;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
-
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prresult);
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result);
 
        fields = mysql_fetch_fields(result);
        if (!(row = mysql_fetch_row(result))) {
@@ -419,13 +364,6 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
                        }
                }
        }
-
-       if (MyG(profiler)) {
-               char tmp[10];
-               sprintf ((char *)&tmp,"row[%d]", mysql_num_fields(result));
-               MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, tmp);
-               prresult->fetched_rows++;
-       }
 }
 /* }}} */
 
index c4638ac71c33e4b96ef26dfe1a56264082392cd5..a1802a6b0642e79ce679d6ea1ceaa1a434cb0f8d 100644 (file)
@@ -36,19 +36,15 @@ PHP_FUNCTION(mysqli_affected_rows)
 {
        MYSQL                   *mysql;
        zval                    *mysql_link;
-       PR_MYSQL                *prmysql;
        my_ulonglong    rc;
-       PR_COMMAND              *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return; /* Should this be RETURN_FALSE? */
        }
 
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        rc = mysql_affected_rows(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, (long)rc);
        MYSQLI_RETURN_LONG_LONG(rc);
 }
 /* }}} */
@@ -59,19 +55,15 @@ PHP_FUNCTION(mysqli_autocommit)
 {
        MYSQL                   *mysql;
        zval                    *mysql_link;
-       PR_MYSQL                *prmysql;
-       PR_COMMAND              *prcommand;
        unsigned long   rc;
        unsigned long   automode;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ob", &mysql_link, mysqli_link_class_entry, &automode) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &mysql_link, &automode) == FAILURE) {
                return; /* Should this be RETURN_FALSE? */
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        rc = (long) mysql_autocommit(mysql, automode);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
 
        RETURN_BOOL(rc);
 }
@@ -89,9 +81,6 @@ PHP_FUNCTION(mysqli_bind_param)
        int                             ofs;
        STMT                    *stmt;
        MYSQL_BIND              *bind;
-       zval                    **object;
-       PR_STMT                 *prstmt;
-       PR_COMMAND              *prcommand;
        unsigned long   rc;
 
        /* calculate and check number of parameters */
@@ -118,18 +107,13 @@ PHP_FUNCTION(mysqli_bind_param)
                WRONG_PARAM_COUNT;
        }
 
-       if (!getThis()) {
-               if (Z_TYPE_PP(args[0]) != IS_OBJECT) {
-                       efree(args);
-                       RETURN_FALSE;
-               }
-               MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, args[0], "mysqli_stmt"); 
-               start = 1;
-       } else {
-               object = &(getThis());  
-               MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, object, "mysqli_stmt"); 
+       if (Z_TYPE_PP(args[0]) != IS_RESOURCE) {
+               efree(args);
+               RETURN_FALSE;
        }
+       MYSQLI_FETCH_STMT(stmt, STMT *, args[0], -1, "mysqli_stmt", le_mysqli_stmt);
 
+       start = 1;
 
        /* prevent leak if variables are already bound */
 #if HHOLZGRA_0
@@ -190,9 +174,7 @@ PHP_FUNCTION(mysqli_bind_param)
                }
        }
        
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prstmt);
        rc = mysql_bind_param(stmt->stmt, bind);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
 
        if (rc) {
                efree(args);
@@ -229,7 +211,6 @@ PHP_FUNCTION(mysqli_bind_result)
 {
        zval            ***args;
        int             argc = ZEND_NUM_ARGS();
-       zval            **object;
        int             i;
        int                     start = 0;
        int                     var_cnt;
@@ -238,10 +219,8 @@ PHP_FUNCTION(mysqli_bind_result)
        ulong           rc;
        STMT            *stmt;
        MYSQL_BIND      *bind;
-       PR_STMT         *prstmt;
-       PR_COMMAND      *prcommand;
 
-       if (argc < (getThis() ? 1 : 2))  {
+       if (argc < 2) {
                WRONG_PARAM_COUNT;
        }
        
@@ -252,17 +231,12 @@ PHP_FUNCTION(mysqli_bind_result)
                WRONG_PARAM_COUNT;
        }
 
-       if (!getThis()) {
-               if (Z_TYPE_PP(args[0]) != IS_OBJECT) {
-                       efree(args);
-                       RETURN_FALSE;
-               }
-               MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, args[0], "mysqli_stmt"); 
-               start = 1;
-       } else {
-               object = &(getThis());  
-               MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, object, "mysqli_stmt"); 
+       if (Z_TYPE_PP(args[0]) != IS_RESOURCE) {
+               efree(args);
+               RETURN_FALSE;
        }
+       MYSQLI_FETCH_STMT(stmt, STMT *, args[0], -1, "mysqli_stmt", le_mysqli_stmt);
+       start = 1;
        
        var_cnt = argc - start;
 
@@ -349,9 +323,7 @@ PHP_FUNCTION(mysqli_bind_result)
                }
        }
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prstmt);
        rc = mysql_bind_result(stmt->stmt, bind);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
 
        if (rc) {
                efree(bind);
@@ -384,17 +356,13 @@ PHP_FUNCTION(mysqli_change_user)
        char            *user, *password, *dbname;
        int             user_len, password_len, dbname_len;
        ulong           rc;
-       PR_COMMAND      *prcommand;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osss", &mysql_link, mysqli_link_class_entry, &user, &user_len, &password, &password_len, &dbname, &dbname_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsss", &mysql_link, &user, &user_len, &password, &password_len, &dbname, &dbname_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        rc = mysql_change_user(mysql, user, password, dbname);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
        if (rc) {
                RETURN_FALSE;
        }
@@ -409,19 +377,15 @@ PHP_FUNCTION(mysqli_character_set_name)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
        char            *charsetname;
-       PR_COMMAND      *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        charsetname = (char *)mysql_character_set_name(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, charsetname);
 
        RETURN_STRING(charsetname, 1);
 }
@@ -432,26 +396,15 @@ PHP_FUNCTION(mysqli_character_set_name)
 PHP_FUNCTION(mysqli_close)
 {
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
        MYSQL           *mysql;
-       PR_COMMON       *current;
        
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       mysql_close(mysql);
-
-       if (MyG(profiler)) {
-               prmysql->closed = 1;
-       }
-       current = (PR_COMMON *)prmysql;
-       if (MyG(profiler)) {
-               php_mysqli_profiler_report(current, 0);
-       }
-       MYSQLI_CLEAR_RESOURCE(&mysql_link);     
+       zend_list_delete(Z_RESVAL_PP(&mysql_link));
        RETURN_TRUE;
 }
 /* }}} */
@@ -462,17 +415,13 @@ PHP_FUNCTION(mysqli_commit)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
        ulong           rc;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        rc = mysql_commit(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
        RETURN_BOOL(rc);
 }
 /* }}} */
@@ -483,24 +432,20 @@ PHP_FUNCTION(mysqli_data_seek)
 {
        MYSQL_RES       *result;
        zval            *mysql_result;
-       PR_RESULT       *prresult;
-       PR_COMMAND      *prcommand;
        long            offset;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Orl", &mysql_result, mysqli_result_class_entry, &mysql_result, &offset) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrl", &mysql_result, &mysql_result, &offset) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used with MYSQL_USE_RESULT");
                RETURN_LONG(0);
        }
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prresult);
        mysql_data_seek(result, offset);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        return;
 }
 /* }}} */
@@ -511,15 +456,12 @@ PHP_FUNCTION(mysqli_debug)
 {
        char            *debug;
        int                     debug_len;
-       PR_COMMAND      *prcommand;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &debug, &debug_len) == FAILURE) {
                return;
        }
        
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmain);
        mysql_debug(debug);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        RETURN_TRUE;
 }
 /* }}} */
@@ -530,16 +472,12 @@ PHP_FUNCTION(mysqli_disable_reads_from_master)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        mysql_disable_reads_from_master(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        RETURN_TRUE;
 }
 /* }}} */
@@ -550,16 +488,12 @@ PHP_FUNCTION(mysqli_disable_rpl_parse)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        mysql_disable_rpl_parse(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        RETURN_TRUE;
 }
 /* }}} */
@@ -570,18 +504,14 @@ PHP_FUNCTION(mysqli_dump_debug_info)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
        ulong           rc;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        rc = mysql_dump_debug_info(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
 
        if (rc) {
                RETURN_FALSE;
@@ -596,17 +526,13 @@ PHP_FUNCTION(mysqli_enable_reads_from_master)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        mysql_enable_reads_from_master(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        RETURN_TRUE;
 }
 /* }}} */
@@ -617,17 +543,13 @@ PHP_FUNCTION(mysqli_enable_rpl_parse)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
-       PR_COMMAND      *prcommand;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prmysql);
        mysql_enable_rpl_parse(mysql);
-       MYSQLI_PROFILER_COMMAND_RETURNSTRING(prcommand, NULL);
        RETURN_TRUE;
 }
 /* }}} */
@@ -638,12 +560,11 @@ PHP_FUNCTION(mysqli_errno)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        RETURN_LONG(mysql_errno(mysql));
 }
 /* }}} */
@@ -654,12 +575,11 @@ PHP_FUNCTION(mysqli_error)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        RETURN_STRING((char *)mysql_error(mysql),1);
 }
 /* }}} */
@@ -671,12 +591,11 @@ PHP_FUNCTION(mysqli_execute)
        STMT                    *stmt;
        zval                    *mysql_stmt;
        unsigned int    i;
-       PR_STMT                 *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
        
        if (stmt->type == FETCH_SIMPLE) {
                for (i = 0; i < stmt->var_cnt; i++) {           
@@ -716,12 +635,11 @@ PHP_FUNCTION(mysqli_fetch)
        zval                    *mysql_stmt;
        unsigned int    i;
        ulong                   ret;
-       PR_STMT                 *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
        
        /* reset buffers */
 
@@ -785,13 +703,12 @@ PHP_FUNCTION(mysqli_fetch_field)
        MYSQL_RES       *result;
        zval            *mysql_result;
        MYSQL_FIELD *field;
-       PR_RESULT       *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (!(field = mysql_fetch_field(result))) {
                RETURN_FALSE;
@@ -819,15 +736,14 @@ PHP_FUNCTION(mysqli_fetch_fields)
        zval            *mysql_result;
        MYSQL_FIELD     *field;
        zval            *obj;
-       PR_RESULT       *prresult;
 
        unsigned int i;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (!(field = mysql_fetch_field(result))) {
                RETURN_FALSE;
@@ -865,13 +781,12 @@ PHP_FUNCTION(mysqli_fetch_field_direct)
        zval            *mysql_result;
        MYSQL_FIELD *field;
        int             offset;
-       PR_RESULT       *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &offset) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &mysql_result, &offset) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (!(field = mysql_fetch_field_direct(result,offset))) {
                RETURN_FALSE;
@@ -899,14 +814,12 @@ PHP_FUNCTION(mysqli_fetch_lengths)
        zval                    *mysql_result;
        unsigned int    i;
        unsigned long   *ret;
-       PR_RESULT               *prresult;
-       
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
 
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (!(ret = mysql_fetch_lengths(result))) {
                RETURN_FALSE;
@@ -935,12 +848,11 @@ PHP_FUNCTION(mysqli_field_count)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_field_count(mysql));
 }
@@ -954,12 +866,11 @@ PHP_FUNCTION(mysqli_field_seek)
        MYSQL_RES               *result;
        zval                    *mysql_result;
        unsigned int    fieldnr;
-       PR_RESULT               *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &fieldnr) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &mysql_result, &fieldnr) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (fieldnr < 0 || fieldnr >= mysql_num_fields(result)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field offset is invalid for resultset");
@@ -977,12 +888,11 @@ PHP_FUNCTION(mysqli_field_tell)
 {
        MYSQL_RES       *result;
        zval            *mysql_result;
-       PR_RESULT       *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
        
        RETURN_LONG(mysql_field_tell(result));
 }
@@ -994,18 +904,13 @@ PHP_FUNCTION(mysqli_free_result)
 {
        MYSQL_RES       *result;
        zval            *mysql_result;
-       PR_RESULT       *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
-       mysql_free_result(result);
-       if (MyG(profiler)) {
-               prresult->closed = 1;
-       }
-       MYSQLI_CLEAR_RESOURCE(&mysql_result);   
+       zend_list_delete(Z_RESVAL_PP(&mysql_result));
 
        RETURN_TRUE;
 }
@@ -1025,12 +930,11 @@ PHP_FUNCTION(mysqli_get_host_info)
 {
        MYSQL           *mysql;
        zval            *mysql_link = NULL;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_STRING((char *)mysql_get_host_info(mysql), 1);
 }
@@ -1042,12 +946,11 @@ PHP_FUNCTION(mysqli_get_proto_info)
 {
        MYSQL           *mysql;
        zval            *mysql_link = NULL;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_get_proto_info(mysql));
 }
@@ -1059,12 +962,11 @@ PHP_FUNCTION(mysqli_get_server_info)
 {
        MYSQL           *mysql;
        zval            *mysql_link = NULL;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_STRING((char *)mysql_get_server_info(mysql), 1);
 }
@@ -1077,12 +979,11 @@ PHP_FUNCTION(mysqli_get_server_version)
 {
        MYSQL   *mysql;
        zval    *mysql_link = NULL;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_get_server_version(mysql));
 }
@@ -1096,12 +997,11 @@ PHP_FUNCTION(mysqli_info)
        MYSQL           *mysql;
        char            *info = NULL;
        zval            *mysql_link = NULL;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (!(info = (char *)mysql_info(mysql))) {
                RETURN_FALSE;
@@ -1115,9 +1015,10 @@ PHP_FUNCTION(mysqli_info)
    Initialize mysqli and return a resource for use with mysql_real_connect */
 PHP_FUNCTION(mysqli_init)
 {
-       MYSQLI_RESOURCE *mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)mysql_init(NULL);
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);       
+       MYSQL *mysql;
+       mysql = mysql_init(NULL);
+       
+       ZEND_REGISTER_RESOURCE(return_value, mysql, le_mysqli_link)
 }
 /* }}} */
 
@@ -1128,12 +1029,11 @@ PHP_FUNCTION(mysqli_insert_id)
        MYSQL                   *mysql;
        my_ulonglong    rc;
        zval                    *mysql_link;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        rc = mysql_insert_id(mysql);
        MYSQLI_RETURN_LONG_LONG(rc)
 }
@@ -1146,12 +1046,11 @@ PHP_FUNCTION(mysqli_kill)
        MYSQL           *mysql;
        zval            *mysql_link;
        int             processid;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_link, mysqli_link_class_entry, &processid) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &mysql_link, &processid) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        
        if (mysql_kill(mysql, processid)) {
                RETURN_FALSE;
@@ -1168,12 +1067,11 @@ PHP_FUNCTION(mysqli_master_query) {
        zval                    *mysql_link;
        char                    *query = NULL;
        unsigned int    query_len;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_master_query(mysql, query, query_len)) {
                RETURN_FALSE;
@@ -1188,12 +1086,11 @@ PHP_FUNCTION(mysqli_num_fields)
 {
        MYSQL_RES       *result;
        zval            *mysql_result;
-       PR_RESULT       *prresult;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
 
        RETURN_LONG(mysql_num_fields(result));
@@ -1206,23 +1103,19 @@ PHP_FUNCTION(mysqli_num_rows)
 {
        MYSQL_RES       *result;
        zval            *mysql_result;
-       PR_RESULT       *prresult;
-       PR_COMMAND      *prcommand;
        ulong           rc;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_result) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, prresult, PR_RESULT *, &mysql_result, "mysqli_result"); 
+       ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "mysqli_result", le_mysqli_result); 
 
        if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used with MYSQL_USE_RESULT");
                RETURN_LONG(0);
        }
 
-       MYSQLI_PROFILER_COMMAND_START(prcommand, prresult);
        rc = mysql_num_rows(result);
-       MYSQLI_PROFILER_COMMAND_RETURNLONG(prcommand, rc);
        RETURN_LONG(rc);
 }
 /* }}} */
@@ -1237,12 +1130,11 @@ PHP_FUNCTION(mysqli_options)
        long                    mysql_option;
        unsigned int    l_value;
        long                    ret;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oslz", &mysql_link, mysqli_link_class_entry, &mysql_option, &mysql_value) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rslz", &mysql_link, &mysql_option, &mysql_value) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        switch (Z_TYPE_PP(&mysql_value)) {
                case IS_STRING:
@@ -1269,12 +1161,11 @@ PHP_FUNCTION(mysqli_param_count)
 {
        STMT            *stmt;
        zval            *mysql_stmt;
-       PR_STMT         *prstmt;
        
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
                
        RETURN_LONG(mysql_param_count(stmt->stmt));
 }
@@ -1286,12 +1177,11 @@ PHP_FUNCTION(mysqli_ping)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        RETURN_LONG(mysql_ping(mysql));
 }
 /* }}} */
@@ -1302,52 +1192,26 @@ PHP_FUNCTION(mysqli_prepare)
 {
        MYSQL                   *mysql;
        STMT                    *stmt;
-       PR_MYSQL                *prmysql;
-       PR_STMT                 *prstmt;
        char                    *query = NULL;
        unsigned int    query_len;
        zval                    *mysql_link;
-       MYSQLI_RESOURCE *mysqli_resource; 
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",&mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",&mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        stmt = (STMT *)ecalloc(1,sizeof(STMT));
        stmt->var_cnt = 0;
 
-       /* profiling information */
-       if (MyG(profiler)) {
-               prstmt = (PR_STMT *)MYSQLI_PROFILER_NEW(prmysql, MYSQLI_PR_STMT, 1);
-               prstmt->explain.query = my_estrdup(query);
-               if (!strncasecmp("select", query, 6)){
-                       if (!(MYSQLI_PROFILER_EXPLAIN(&prstmt->explain, &prstmt->header, mysql, query))) {
-                               RETURN_FALSE;
-                       }
-               }
-       }
        stmt->stmt = mysql_prepare(mysql, query, query_len); 
 
-       if (MyG(profiler)) {
-               MYSQLI_PROFILER_ELAPSEDTIME(prstmt);
-               if (!stmt->stmt) {
-                       prstmt->header.error = mysql_errno(mysql);
-                       prstmt->header.errormsg = my_estrdup(mysql_error(mysql));
-               } else {
-                       prstmt->param_cnt = mysql_param_count(stmt->stmt);
-                       prstmt->field_cnt = stmt->stmt->field_count;
-               }
-       }
-
        if (!stmt->stmt) {
                efree(stmt);
                RETURN_FALSE;
        }
 
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)stmt;
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry);
+       ZEND_REGISTER_RESOURCE(return_value, stmt, le_mysqli_stmt)
 }
 /* }}} */
 
@@ -1358,22 +1222,17 @@ PHP_FUNCTION(mysqli_prepare_result)
        STMT                    *stmt;
        MYSQL_RES               *result;
        zval                    *mysql_stmt;
-       PR_STMT                 *prstmt = NULL;
-       MYSQLI_RESOURCE *mysqli_resource;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
        
        if (!(result = mysql_prepare_result(stmt->stmt))){
                RETURN_FALSE;
        }
 
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)result;
-       mysqli_resource->prinfo = (void *)prstmt;
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);     
+       ZEND_REGISTER_RESOURCE(return_value, result, le_mysqli_result)
 }
 /* }}} */
 
@@ -1383,12 +1242,11 @@ PHP_FUNCTION(mysqli_read_query_result)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_read_query_result(mysql)) {
                RETURN_FALSE;
@@ -1407,9 +1265,8 @@ PHP_FUNCTION(mysqli_real_connect)
        unsigned int hostname_len, username_len, passwd_len, dbname_len, socket_len;
        unsigned int port=0, flags=0;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|sssslsl", &mysql_link, mysqli_link_class_entry,
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|sssslsl", &mysql_link,
                &hostname, &hostname_len, &username, &username_len, &passwd, &passwd_len, &dbname, &dbname_len, &port, &socket, &socket_len,
                &flags) == FAILURE) {
                return;
@@ -1433,7 +1290,7 @@ PHP_FUNCTION(mysqli_real_connect)
                }
        }       
 
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
                /* Save error messages */
@@ -1454,12 +1311,11 @@ PHP_FUNCTION(mysqli_real_query)
        zval                    *mysql_link;
        char                    *query = NULL;
        unsigned int    query_len;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_real_query(mysql, query, query_len)) {
                RETURN_FALSE;
@@ -1475,12 +1331,11 @@ PHP_FUNCTION(mysqli_real_escape_string) {
        zval            *mysql_link = NULL;
        char            *escapestr, *newstr;
        int                     escapestr_len, newstr_len;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &escapestr, &escapestr_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &escapestr, &escapestr_len) == FAILURE) {
                return;
        }       
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        newstr = emalloc(2 * escapestr_len + 1);
        newstr_len = mysql_real_escape_string(mysql, newstr, escapestr, escapestr_len);
@@ -1496,12 +1351,11 @@ PHP_FUNCTION(mysqli_reload)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_BOOL(!mysql_reload(mysql));
 }
@@ -1513,12 +1367,11 @@ PHP_FUNCTION(mysqli_rollback)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_BOOL(mysql_rollback(mysql));
 }
@@ -1530,12 +1383,11 @@ PHP_FUNCTION(mysqli_rpl_parse_enabled)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_rpl_parse_enabled(mysql));
 }
@@ -1547,12 +1399,11 @@ PHP_FUNCTION(mysqli_rpl_probe)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
 
        if (mysql_rpl_probe(mysql)) {
@@ -1570,12 +1421,11 @@ PHP_FUNCTION(mysqli_rpl_query_type)
        zval            *mysql_link;
        char            *query;
        int                     query_len;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_rpl_query_type(query, query_len));
 }
@@ -1587,15 +1437,14 @@ PHP_FUNCTION(mysqli_send_long_data)
 {
        STMT    *stmt;
        zval    *mysql_stmt;
-       PR_STMT *prstmt;
        char  *data;
        long  param_nr, data_len;
 
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ols", &mysql_stmt, mysqli_stmt_class_entry, &param_nr, &data, &data_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &mysql_stmt, &param_nr, &data, &data_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
 
        if (!param_nr) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter number");
@@ -1618,12 +1467,11 @@ PHP_FUNCTION(mysqli_send_query)
        zval                    *mysql_link;
        char                    *query = NULL;
        unsigned int    query_len;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_send_query(mysql, query, query_len)) {
                RETURN_FALSE;
@@ -1640,12 +1488,11 @@ PHP_FUNCTION(mysqli_slave_query)
        zval                    *mysql_link;
        char                    *query = NULL;
        unsigned int    query_len;
-       PR_MYSQL                *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &query, &query_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_slave_query(mysql, query, query_len)) {
                RETURN_FALSE;
@@ -1661,12 +1508,11 @@ PHP_FUNCTION(mysqli_stmt_affected_rows)
        STMT                    *stmt;
        zval                    *mysql_stmt;
        my_ulonglong    rc;
-       PR_STMT                 *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt");
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt);
 
        rc = mysql_stmt_affected_rows(stmt->stmt);
        MYSQLI_RETURN_LONG_LONG(rc)
@@ -1679,16 +1525,13 @@ PHP_FUNCTION(mysqli_stmt_close)
 {
        STMT            *stmt;
        zval            *mysql_stmt;
-       PR_STMT         *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
-       mysql_stmt_close(stmt->stmt);
-       stmt->stmt = NULL;
-       php_clear_stmt_bind(stmt); 
-       MYSQLI_CLEAR_RESOURCE(&mysql_stmt);
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
+       
+       zend_list_delete(Z_RESVAL_PP(&mysql_stmt));
        RETURN_TRUE;
 
 }
@@ -1702,13 +1545,11 @@ PHP_FUNCTION(mysqli_select_db)
        zval            *mysql_link;
        char            *dbname;
        int             dbname_len;
-       PR_MYSQL        *prmysql;
 
-//     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,  "Os", &mysql_link, mysqli_link_class_entry, &dbname, &dbname_len) == FAILURE) {
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &dbname, &dbname_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &mysql_link, &dbname, &dbname_len) == FAILURE) {
                return;
        } 
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        
        if (!mysql_select_db(mysql, dbname)) {
                RETURN_TRUE;
@@ -1726,13 +1567,12 @@ PHP_FUNCTION(mysqli_ssl_set)
        zval            *mysql_link;
        char            *key=NULL, *cert=NULL, *ca=NULL, *capath=NULL, *cipher=NULL;
        int             key_len, cert_len, ca_len, capath_len, cipher_len;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osssss", &mysql_link, mysqli_link_class_entry
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsssss", &mysql_link
                &key, &key_len, &cert, &cert_len, &ca, &ca_len, &capath, &capath_len, &cipher, &cipher_len) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
        
        mysql_ssl_set(mysql, key, cert, ca, capath, cipher);
 
@@ -1746,12 +1586,11 @@ PHP_FUNCTION(mysqli_stat)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_STRING((char *)mysql_stat(mysql), 1);
 }
@@ -1764,12 +1603,11 @@ PHP_FUNCTION(mysqli_stmt_errno)
 {
        STMT    *stmt;
        zval    *mysql_stmt;
-       PR_STMT *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
 
        RETURN_LONG(mysql_stmt_errno(stmt->stmt));
 }
@@ -1781,12 +1619,11 @@ PHP_FUNCTION(mysqli_stmt_error)
 {
        STMT    *stmt;
        zval    *mysql_stmt;
-       PR_STMT *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
        
        RETURN_STRING((char *)mysql_stmt_error(stmt->stmt),1);
 }
@@ -1798,12 +1635,11 @@ PHP_FUNCTION(mysqli_stmt_store_result)
 {
        STMT    *stmt;
        zval    *mysql_stmt;
-       PR_STMT *prstmt;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_stmt) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(stmt, STMT *, prstmt, PR_STMT *, &mysql_stmt, "mysqli_stmt"); 
+       MYSQLI_FETCH_STMT(stmt, STMT *, &mysql_stmt, -1, "mysqli_stmt", le_mysqli_stmt); 
        
        if (mysql_stmt_store_result(stmt->stmt)){
                RETURN_FALSE;
@@ -1819,20 +1655,16 @@ PHP_FUNCTION(mysqli_store_result)
        MYSQL                   *mysql;
        MYSQL_RES               *result;
        zval                    *mysql_link;
-       PR_MYSQL                *prmysql;
-       MYSQLI_RESOURCE *mysqli_resource;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (!(result = mysql_store_result(mysql))) {
                RETURN_FALSE;
        }
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)result;
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);     
+       ZEND_REGISTER_RESOURCE(return_value, result, le_mysqli_result);
 }
 /* }}} */
 
@@ -1842,12 +1674,11 @@ PHP_FUNCTION(mysqli_thread_id)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_thread_id(mysql));
 }
@@ -1869,20 +1700,16 @@ PHP_FUNCTION(mysqli_use_result)
        MYSQL                   *mysql;
        MYSQL_RES               *result;
        zval                    *mysql_link;
-       PR_MYSQL                *prmysql;
-       MYSQLI_RESOURCE *mysqli_resource;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (!(result = mysql_use_result(mysql))) {
                RETURN_FALSE;
        }
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)result;
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);     
+       ZEND_REGISTER_RESOURCE(return_value, result, le_mysqli_result);
 }
 /* }}} */
 
@@ -1892,12 +1719,11 @@ PHP_FUNCTION(mysqli_warning_count)
 {
        MYSQL           *mysql;
        zval            *mysql_link;
-       PR_MYSQL        *prmysql;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &mysql_link) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        RETURN_LONG(mysql_warning_count(mysql));
 }
index 82e4a681b299e15225d586c78f93dc9c1d47bfef..6f73a5e05cff0abdd0a30dc2ba024aadd01256ea 100644 (file)
@@ -86,7 +86,6 @@ function_entry mysqli_functions[] = {
        PHP_FE(mysqli_ping,                                                                     NULL)
        PHP_FE(mysqli_prepare,                                                          NULL)
        PHP_FE(mysqli_prepare_result,                                           NULL)
-       PHP_FE(mysqli_profiler,                                                         NULL)
        PHP_FE(mysqli_query,                                                            NULL)
        PHP_FE(mysqli_read_query_result,                                        NULL)
        PHP_FE(mysqli_real_connect,                                                     NULL)
index 6cfbac16396368a190197f9e3504da498920486d..14cf5e32ebfa72ab1682f003502007fc73bedd55 100644 (file)
 PHP_FUNCTION(mysqli_connect)
 {
        MYSQL                           *mysql;
-       MYSQLI_RESOURCE         *mysqli_resource;
-       PR_MYSQL                        *prmysql = NULL;
-       zval                            *object = getThis();
        char                            *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL;
        unsigned int            hostname_len, username_len, passwd_len, dbname_len, socket_len;
        unsigned int            port=0;
-       struct timeval          starttime;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ssssls", &hostname, &hostname_len, &username, &username_len, 
                &passwd, &passwd_len, &dbname, &dbname_len, &port, &socket, &socket_len) == FAILURE) {
@@ -62,10 +58,6 @@ PHP_FUNCTION(mysqli_connect)
        }       
        mysql = mysql_init(NULL);
 
-       if (MyG(profiler)){
-               gettimeofday(&starttime, NULL);
-       }
-
        if (mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,0) == NULL) {
                /* Save error messages */
 
@@ -77,25 +69,7 @@ PHP_FUNCTION(mysqli_connect)
                RETURN_FALSE;
        }
 
-       if (MyG(profiler)) {
-               prmysql = (PR_MYSQL *)MYSQLI_PROFILER_NEW(prmain, MYSQLI_PR_MYSQL, 0);
-               php_mysqli_profiler_timediff(starttime, &prmysql->header.elapsedtime);
-               MYSQLI_PROFILER_STARTTIME(prmysql);
-               prmysql->hostname = estrdup(hostname);
-               prmysql->username = estrdup(username);
-               prmysql->thread_id = mysql->thread_id;
-       }
-
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)mysql;
-       mysqli_resource->prinfo = prmysql;
-
-
-       if (!object) {
-               MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);       
-       } else {
-               ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->ptr = mysqli_resource;
-       }
+       ZEND_REGISTER_RESOURCE(return_value, mysql, le_mysqli_link);
 }
 /* }}} */
 
@@ -132,68 +106,31 @@ PHP_FUNCTION(mysqli_fetch_object)
 PHP_FUNCTION(mysqli_query) {
        MYSQL                           *mysql;
        zval                            *mysql_link;
-       MYSQLI_RESOURCE         *mysqli_resource;
        MYSQL_RES                       *result;
-       PR_MYSQL                        *prmysql;
-       PR_QUERY                        *prquery;
-       PR_RESULT                       *prresult;
        char                            *query = NULL;
        unsigned int            query_len;
        unsigned int            resultmode = 0;
-       struct timeval          starttime;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|l", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs|l", &mysql_link, &query, &query_len, &resultmode) == FAILURE) {
                return;
        }
-       MYSQLI_FETCH_RESOURCE(mysql, MYSQL*, prmysql, PR_MYSQL *, &mysql_link, "mysqli_link");
-
-       /* profiling information */
-       if (MyG(profiler)) {
-               prquery = (PR_QUERY *)MYSQLI_PROFILER_NEW(prmysql, MYSQLI_PR_QUERY, 1);
-               prquery->explain.query = my_estrdup(query);
-               if (!strncasecmp("select", query, 6)){
-                       if (!(MYSQLI_PROFILER_EXPLAIN(&prquery->explain, &prquery->header, mysql, query))) {
-                               RETURN_FALSE;
-                       }
-               }
-       }
+       ZEND_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, -1, "mysqli_link", le_mysqli_link);
 
        if (mysql_real_query(mysql, query, query_len)) {
                RETURN_FALSE;
        }
 
-       if (MyG(profiler)) {
-               MYSQLI_PROFILER_ELAPSEDTIME(prquery);
-               prquery->insertid = mysql_insert_id(mysql);
-               prquery->affectedrows = mysql_affected_rows(mysql);
-       }
-
        if (!mysql_field_count(mysql)) {
                RETURN_FALSE;
        }
 
-       /* profiler result information */
-       if (MyG(profiler)) {
-               gettimeofday(&starttime, NULL);
-               prresult = (PR_RESULT *)MYSQLI_PROFILER_NEW(prquery, MYSQLI_PR_RESULT, 1);
-       }
-
        result = (resultmode == MYSQLI_USE_RESULT) ? mysql_use_result(mysql) : mysql_store_result(mysql);
 
-       if (result && MyG(profiler)) {
-               MYSQLI_PROFILER_ELAPSEDTIME(prresult);
-               prresult->rows = result->row_count;
-               prresult->columns = result->field_count;
-       }
-               
        if (!result) {
                RETURN_FALSE;
        }
 
-       mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
-       mysqli_resource->ptr = (void *)result;
-       mysqli_resource->prinfo = (void *)prresult;
-       MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
+       ZEND_REGISTER_RESOURCE(return_value, result, le_mysqli_result);
 }
 /* }}} */
 
index c823e645277044f25639cd5ace35eb58049b34c2..71e6a734cbbb6ee406439cb6aa15c0bcfbf0cc63 100644 (file)
@@ -26,7 +26,6 @@
 #endif
 
 #include <mysql.h>
-#include "mysqli_profiler.h"
 
 #ifndef PHP_MYSQLI_H
 #define PHP_MYSQLI_H
@@ -57,16 +56,6 @@ typedef struct _mysqli_object {
        void *ptr;
 } mysqli_object; /* extends zend_object */
 
-#define MYSQLI_PR_MAIN         0
-#define MYSQLI_PR_MYSQL                1
-#define MYSQLI_PR_QUERY                2
-#define MYSQLI_PR_QUERY_RESULT 3
-#define MYSQLI_PR_STMT         4
-#define MYSQLI_PR_STMT_RESULT  5
-#define MYSQLI_PR_RESULT       6
-#define MYSQLI_PR_COMMAND      7
-
-
 #define phpext_mysqli_ptr &mysqli_module_entry
 
 #ifdef PHP_WIN32
@@ -89,65 +78,7 @@ extern function_entry mysqli_result_methods[];
 extern void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int flag);
 extern void php_clear_stmt_bind(STMT *stmt);
 
-zend_class_entry *mysqli_link_class_entry;
-zend_class_entry *mysqli_stmt_class_entry;
-zend_class_entry *mysqli_result_class_entry;
-
-zend_class_entry _mysqli_link_class_entry;
-zend_class_entry _mysqli_stmt_class_entry;
-zend_class_entry _mysqli_result_class_entry;
-
-PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRMLS_DC);
-
-#define REGISTER_MYSQLI_CLASS_ENTRY(name, mysqli_entry, class_functions) { \
-       INIT_CLASS_ENTRY(_##mysqli_entry,name,class_functions); \
-       _##mysqli_entry.create_object = mysqli_objects_new; \
-       mysqli_entry = zend_register_internal_class(&_##mysqli_entry TSRMLS_CC); \
-} \
-
-#define MYSQLI_REGISTER_RESOURCE_EX(__ptr, __zval, __ce)  \
-       ((mysqli_object *) zend_object_store_get_object(__zval TSRMLS_CC))->ptr = __ptr;
-
-#define MYSQLI_RETURN_RESOURCE(__ptr, __ce) \
-       Z_TYPE_P(return_value) = IS_OBJECT; \
-       (return_value)->value.obj = mysqli_objects_new(__ce TSRMLS_CC); \
-       MYSQLI_REGISTER_RESOURCE_EX(__ptr, return_value, __ce)
-
-#define MYSQLI_REGISTER_RESOURCE(__ptr, __ce) \
-{\
-       zval *object = getThis();\
-       if (!object) {\
-               object = return_value;\
-               Z_TYPE_P(object) = IS_OBJECT;\
-               (object)->value.obj = mysqli_objects_new(__ce TSRMLS_CC);\
-       }\
-       MYSQLI_REGISTER_RESOURCE_EX(__ptr, object, __ce)\
-}
-
-#define MYSQLI_FETCH_RESOURCE(__ptr, __type, __prptr, __prtype, __id, __name) \
-{ \
-       MYSQLI_RESOURCE *my_res; \
-       mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
-       if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {\
-               php_error(E_WARNING, "Couldn't fetch %s", intern->zo.ce->name);\
-               RETURN_NULL();\
-       }\
-       __ptr = (__type)my_res->ptr; \
-       __prptr = (__prtype)my_res->prinfo; \
-       if (!strcmp((char *)__name, "mysqli_stmt")) {\
-               if (!((STMT *)__ptr)->stmt->mysql) {\
-                       php_error(E_WARNING, "Statement isn't valid anymore");\
-                       RETURN_NULL();\
-               }\
-       }\
-} 
-
-#define MYSQLI_CLEAR_RESOURCE(__id) \
-{ \
-       mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
-       efree(intern->ptr); \
-       intern->ptr = NULL; \
-}
+extern int le_mysqli_link, le_mysqli_result, le_mysqli_stmt;
 
 #define MYSQLI_RETURN_LONG_LONG(__val) \
 { \
@@ -160,6 +91,15 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
        }                                       \
 }
 
+#define MYSQLI_FETCH_STMT(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \
+{ \
+       ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type); \
+       if (!rsrc->stmt->mysql) { \
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Connection closed. Statement resource invalid.");\
+               RETURN_FALSE;\
+       } \
+}
+
 #define MYSQLI_STORE_RESULT    0
 #define MYSQLI_USE_RESULT      1
 
@@ -239,7 +179,6 @@ PHP_FUNCTION(mysqli_ping);
 PHP_FUNCTION(mysqli_prepare);
 PHP_FUNCTION(mysqli_query);
 PHP_FUNCTION(mysqli_prepare_result);
-PHP_FUNCTION(mysqli_profiler);
 PHP_FUNCTION(mysqli_read_query_result);
 PHP_FUNCTION(mysqli_real_connect);
 PHP_FUNCTION(mysqli_real_query);
@@ -278,7 +217,6 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqli)
        char            *default_socket;
        long            error_no;
        char            *error_msg;
-       unsigned int    profiler;
 ZEND_END_MODULE_GLOBALS(mysqli)
 
 #ifdef ZTS
index 58580c631a07b5444b95303060b15121323b18db..4f14acd6fcf5ffed04dbae627cd2c9652e0c50d1 100644 (file)
@@ -43,7 +43,7 @@ mysqli_fetch_object
        mysqli_close($link);
 ?>
 --EXPECTF--
-object(stdClass)#%d (7) {
+object(stdClass)(7) {
   ["c1"]=>
   string(1) "0"
   ["c2"]=>
index 0a11e0cf02af9dbf9907293b56689f5b5358d07b..28cde5f0805f8b55792bc0a5f7a9b44bb1104d40 100644 (file)
@@ -29,7 +29,7 @@ mysqli_prepare_result
 --EXPECTF--
 array(2) {
   [0]=>
-  object(stdClass)#%d (9) {
+  object(stdClass)(9) {
     ["name"]=>
     string(3) "foo"
     ["orgname"]=>
@@ -50,7 +50,7 @@ array(2) {
     int(0)
   }
   [1]=>
-  object(stdClass)#%d (9) {
+  object(stdClass)(9) {
     ["name"]=>
     string(3) "bar"
     ["orgname"]=>