货币问答:php扩展开发

李一挝

在php扩展中,如果实现以下mysql功能?一条语句实现

  • Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件。 
查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli.dll即可。  相对于mysql有很多新的特性和优势  (1)支持本地绑定、准备(prepare)等语法  (2)执行sql语句的错误代码  (3)同时执行多个sql  (4)另外提供了面向对象的调用接口的方法。  下面一一用php实例进行mysqli数据库连接!  使用方法一:使用传统的面向过程的方法  php代码如下:  <?php  $connect = mysqli_connect('localhost','root','','volunteer') or die('Unale to connect');  $sql = "select * from vol_msg";  $result = mysqli_query($connect,$sql);  while($row = mysqli_fetch_row($result)){  echo $row[0];  }  ?>  使用方法二:使用面向对象的方法调用接口(推荐使用)  看php代码如下:  复制代码 代码如下: <?php  //创建对象并打开连接,最后一个参数是选择的数据库名称  $mysqli = new mysqli('localhost','root','','volunteer');  //检查连接是否成功  if (mysqli_connect_errno()){  //注意mysqli_connect_error()新特性  die('Unable to connect!'). mysqli_connect_error();  }  $sql = "select * from vol_msg";  //执行sql语句,完全面向对象的  $result = $mysqli->query($sql);  while($row = $result->fetch_array()){  echo $row[0];  }  ?>  以上两个php实例运行的结果完全相同,可以清楚的看到使用mysqli类对象构建数据库连接的优势!  插入和修改记录我就不用讲了,只要更改一下sql语句就行,下一篇我会讲prepare接口特性!

追问
你这样打酱油可以嘛?

推荐
不推荐
展开
收起
护神牌

开发过程中,如何查看 php扩展的详细i错误信息?

那什么,错误信息太少了,或者放点代码上来我好看一点。---------------------------------------------但是可以用ini_set('display_errors', true);追问

显示了错误信息的。

推荐
不推荐
展开
收起
闵展炼

C#net能开发编译php扩展吗

c# 是可以开发php扩展的,c#编译成dll,注册为com组件,放到php的扩展中,在php文件中调用即可。

例如:c#

  • namespace HelloWorld  

  • {  

  • [ComVisible(true)]  

  • public class Hello  

  • {  

  • public string Write()  

  • {  

  • return "Hello World";  

  • }  

  • }  

  • 编译成的dll为HelloWorld

    php中调用

  • <?php  

  • $r=new Com("HelloWorld.Hello");  

  • $s=$r->Write();  

  • echo $s;  

  • ?>  

推荐
不推荐
展开
收起
南龙北凤

如何开发PHP扩展模块

开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。 安装PHP扩展最简单的办法就是 sudo apt-get install php5-xxx 但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源...

推荐
不推荐
展开
收起
朱光

php 扩展开发需要具备哪些知识?

1)基础的,C 语言要懂的~~2)知道一个PHP扩展的基本构成~ 包括参数的解析,函数的定义~3)PHP语言的数据类型在C 语言中的构成,zval~4)剩下的就看你要实现什么了,是否涉及到通信,数据操作等。。看样子很多吧,其实你努力努力天天认真点在后盾人有空时看看教材,慢慢的不就明白了

推荐
不推荐
展开
收起
彭羕

PHP如何扩展和如何在linux底层对php扩展

#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <errno.h>#include <dlfcn.h>//定义我们自己的connect函数int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen){ static int (*connect_linuxc)(int, const struct sockaddr*, socklen_t)=NULL; unsigned char *ip_char; //利用 lsym的RTLD_NEXT选项绕过LD_PRELOAD环境变量的connect方法找到c库的函数 if (!connect_linuxc) connect_linuxc=dlsym(RTLD_NEXT,"connect"); ip_char=serv_addr->sa_data; ip_char+=2;//192.168.2.3 找到了 if ((*ip_char==192)&&(*(ip_char+1)==168)&&(*(ip_char+2)==2)&&(*(ip_char+3)==3)) { //简单返回一个权限错误的代码 return EACCES; }// 调用真正的connect方法 return connect_linuxc(sockfd,serv_addr,addrlen); }编译成so文件$ gcc -o lp_demo.so -shared lp_demo.c -ldl测试文件 test.php<?phpfile_get_contents("");?>使用方法LD_PRELOAD=lp_demo.so php test.php这样他将不可能访问的到192.168.2.3这种我们内部的网址。起到一个很好的沙盒作用。除此之外我们还可以利用fwrite fopen等函数将php对文件系统的读写操作转移到mencache,nosql之类的后端资源当中。 最后,即使我们已经深入了c库的内部,也不意味着我们走到了最底层,在c库下面,还有一堆sys_开头的函数,他们才是内核空间里的真正函数,在此就不在探讨了。

推荐
不推荐
展开
收起
谢守灏

如何安装新的PHP扩展模块

php安装好后,可能在初次安装时,会有些模块会有遗漏,但是我们又不想重新编译php,因为耗时是比较长的。我们可不可以在不重新编译安装php的情况下,来为php单独添加某一个模块呢?查找资料,发现还是有方法的,重点就是phpize了,于是写了这篇文章.下面我们就以单独为php加载mysqli模块为例,演示如何动态为php添加模块。1、找到php原码安装文件2、cd /home/php/ext/myslqi3、运行 /usr/local/php/bin/phpize4、/configure –with-php-config=/usr/local/php/bin/php-config5、make && make install6、安装完成之后会在系统/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/这个目录下面生成mysqli.so的库文件7、编辑php.ini文件,指定php到哪人目录读取模块vi /usr/local/php/etc/php.iniextension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″extension=mysqli.so8、重启php服务 /usr/local/php/sbin/php-fpm restart7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在如果步骤正确,你的人口也不差的情况下,应该这样php的动态模块加载就完成了。

推荐
不推荐
展开
收起
沈范

如何利用C自定义实现PHP扩展

注意两点即可:第一,调用其它文件的函数或类,需要先用include,require,include_once,require_once这些函数包含一下其它文件,这四个函数的区别,你可以查一下手册。第二,对于类外面的函数,在文件包含以后,可以直接调用;对于类内部的函数,在文件包含以后,如果是静态函数,就用 类名::函数名 进行调用,如果不是静态函数,就需要先将类实例化,然后用 实例化的对象->函数名 进行调用。本回答被网友采纳

推荐
不推荐
展开
收起
仞利仙子

PHP的扩展模块怎么添加?

在PHP/etc 文件夹中加入扩展在PHP 文件夹下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的扩展的名字xxxx.dll或者 是 在php.ini中直接打开对应的扩展 ,将目标行的 ; 给去掉哦,对了,最后记得要重新启动PHP的服务器

推荐
不推荐
展开
收起
查看更多答案
收起