0

を介してmysqlデータベースに接続するための拡張機能を構築するためのコードを作成しますmysql_connect

私のコードはコンパイルされていますが、PHP で関数を使用したい場合、ループが発生し、おそらく動作しません。ここに私のC++コードがあります:

PHP_FUNCTION(ig_connect_to_database)
{
zval fname, *args[3], *retval = NULL;

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, retval, 3, args TSRMLS_CC) == SUCCESS) {

    zval_ptr_dtor(&retval);
    zval_ptr_dtor(&args[1]);
    zval_ptr_dtor(&args[0]);
}

}

どんな体でも私を助けることができますか?

リソース接続を返したいだけです。

「retval」が myresource であることは知っていますが、このリソースを私の php コードに返す方法がわかりません。

4

1 に答える 1

0

質問に答えるかどうかはわかりませんが、私の問題は次のコードで解決されます。

*return_value = retval;
zval_copy_ctor(return_value);
于 2012-12-04T06:03:57.740 に答える