您的位置 首页 php

C语言零基础编程:mysql+php扩展

#C语言#

  我没有专门学过C语言,对C语言的学习仅仅是翻了一遍谭浩强的那本书,把一些例子输入电脑编译过,书上的练习题似乎很多是数学题,我一道也不会解。我认为如果不是为了考试,可以先使用C语言写程序,有点感觉以后再深入学习。在使用C写程序时,我通过网络查找,然后自己反复试,最终完成了程序,并把程序放到实际业务中使用。

我用C语言把访问数据库的部分写为php扩展的形式,在php网页中直接调用用函数来实现各种功能。

一、下载php源程序,解压,进入目录:

   cd /usr/local/src/php-7.4.27/ext  

运行 ext_skel.php –ext=waters 创建一个名为waters的扩展。

  进入waters目录,依次执行下面的命令:

 phpize
./configure
make  

各命令正常,表示扩展已经创建成功。

编辑Makefile,在里面加入我的编译参数和头文件目录,这里只是添加mysql访问功能。

编辑文件 /etc/php/7.4/apache2/php.ini,添加一句:extension=waters.so

二、编辑waters.c,把写好的函数添加到里面。

照着示例程序的样子,添加 php 函数。

这部分是参数声明:

 ZEND_BEGIN_ARG_INFO(arginfo_userinfo, 0)
ZEND_ARG_INFO(0, str)
ZEND_END_ARG_INFO()  

这部分是php函数入口:

 static const zend_function_entry waters_functions[] = {
PHP_FE(userinfo,arginfo_userinfo)
PHP_FE_END 
};  

我这里添加了userinfo函数,通过编号获取用户信息。

添加函数接口,获取参数,用参数调用前面写好的函数。照着示例改一下就可以了。

 /* {{{ string userinfo( [ string $var ] )
 */PHP_FUNCTION(userinfo)
{
char *var = "World";
size_t var_len = sizeof("World") - 1;
zend_string *retval;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_STRING(var, var_len)
ZEND_PARSE_PARAMETERS_END();
char *x=getinfo(var);
retval = strpprintf(0, "%s", x);
RETURN_STR(retval);
}
/* }}}*/  

编译、安装、重新启动apache:

 make
make install
apachectl restart  

三、在php文件中调用函数。

 $ret=userinfo($number);
$xml=simplexml_load_string($ret);  

函数以xml格式返回用户信息,经过处理放到网页上。

文章来源:智云一二三科技

文章标题:C语言零基础编程:mysql+php扩展

文章地址:https://www.zhihuclub.com/78718.shtml

关于作者: 智云科技

热门文章

网站地图