- C/C++ code
-
zval *fname;
zval **args[1];
zval *retval;
zval *arg1;
args[0]=&arg1;
int arg_count=1;
call_user_function_ex(EG(function_table), NULL, fname, &retval, arg_count, args, 0,NULL TSRMLS_CC);
fname就是函数名,retval就是返回值,arg_count就是传入的参数数目,args就是参数。第一个参数一般来说都是固定的,第二个参数除非是调用类方法,否则为NULL。
call_user_function_ex的作用是在c层面呼叫php的函数。其实,既然你都能调用PHP的mysql函数了,那么libmysql肯定也是编译进去了,这时候直接用libmysql的函数即可。
至于libmysql的用法么,我先问你,你以前写过调用第三方库的c程序吗?如果没写过,你应该先去了解一下如何在C程序里使用别人的库。
mysql.h 是MySQL(libmysql也在里面)附带的,你必须去mysql的官方站点下。#include <mysql.h> 的意思是说从$PATH里找这个h文件,你也可以以普通路径的形式调用,例如#include "../MySQL/mysql.h"
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在php 扩展中 调用mysql - Python技术站