Hi
I am trying to build an PHP extension for my personal project.
For some reason. I want to build some part of my project with extension.
So, I can make a connection via my extension as you can see below my c++
source code.

Cause of poor document, I confused with zend engine source code and c++ and
relations with php.
I just have a simple question, how can I use mysql funtions work with query
and process it like:
mysql_query
mysql_fetch_assoc
and ...


here is my code:

PHP_FUNCTION(ig_connect_to_
database)
{
    zval fname, *args[3], dbLink;
    zval selectDB, *args_selectDB[1], retval;

    /*if(zend_call_method(NULL, NULL,
                                                    NULL,
                                                    "mysql_connect",

strlen("mysql_connect"),
                                                    &retval,
                                                    1,
                                                    args[1],
                                                    args[2] TSRMLS_CC
                                                                        )
== FAILURE) {
    php_printf("gosh!");
}
else {
    php_printf("yep!");
}*/


    ZVAL_STRING(&fname, "mysql_connect", 0);

    MAKE_STD_ZVAL(args[0]);
    ZVAL_STRING(args[0], "localhost", 1);

    MAKE_STD_ZVAL(args[1]);
    ZVAL_STRING(args[1], "root", 1);

    MAKE_STD_ZVAL(args[2]);
    ZVAL_STRING(args[2], "", 1);


    if (call_user_function(EG(function_table), NULL, &fname, &dbLink, 3,
args TSRMLS_CC) == FAILURE) {

        RETURN_STRING("fail to connect to database", 1);
    }
    else
    {
        zval_ptr_dtor(&args[2]);
        zval_ptr_dtor(&args[1]);
        zval_ptr_dtor(&args[0]);

        /*
        *return_value = dbLink;
        zval_copy_ctor(return_value);
        */

        /****now! I want to select a database on success****/

        ZVAL_STRING(&selectDB, "mysql_select_db", 0);

        MAKE_STD_ZVAL(args_selectDB[0]);
        ZVAL_STRING(args_selectDB[0], "clickbartarirg", 1);

        if (call_user_function(CG(function_table), NULL, &selectDB,
&retval, 1, args_selectDB TSRMLS_CC) == SUCCESS)
        {
            /* I successfully selected database */
            ZEND_FETCH_RESOURCE_NO_RETURN(retval);
            if(&retval)
            {
                php_printf("selected");
            }
            else
            {
                zend_error(E_ERROR, "failed to select database!");
            }

            zval_ptr_dtor(&args_selectDB[0]);

        }
        else
        {
            zend_error(E_ERROR, "database problem");
            zval_ptr_dtor(&args_selectDB[0]);
        }
    }

}

Thanks.

Regards
*Amir Ghazavi*
*Web Developer
IT Manager of ECDC2013*
*
*
*www.ecdcconference.org*

Reply via email to