zoukankan      html  css  js  c++  java
  • Linux装mysqli.so

     php 5.2.3+mysqli 安装与常见错误 总结

    php 5.2.3+mysqli 安装与常见错误 总结
     
    记得原来在编译php的已经已经加上参数
    --with-mysql=/usr/local/mysql
    --with-mysqli=/usr/local/mysql/bin/mysql_config
    可后来找了一个,的确不存在mysqli.so,所以只能单独来编译mysqli了。
    mysqli是优化过的mysql函数库,MYSQL版本不能低于4.1.12

    cd /root/tmp/php-5.2.3/ext/mysqli
    #####进入到mysqli的目录。
    再用phpize生成configure文件:
    /usr/local/bin/phpize
    Configuring for:
    PHP Api Version:         20041225
    Zend Module Api No:      20060613
    Zend Extension Api No:   220060519
    #./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/bin/php-config --with-mysqli=/usr/bin/mysql_config
    make 
    make install
    Installing shared extensions:     /usr/local/lib/php/extensions/debug-non-zts-20060613/
    然后在/usr/local/lib/php.ini
    加上一句:
    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mysqli.so
    重新启动apache即可看到已经加载mysqli成功。
     
     
    1、如果出现出错代码:
     
     
    1. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c: In function 'zm_startup_mysqli':
    2. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: 'MYSQL_RPL_MASTER' undeclared (first use in this function)
    3. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: (Each undeclared identifier is reported only once
    4. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: for each function it appears in.)
    5. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:638: error: 'MYSQL_RPL_SLAVE' undeclared (first use in this function)
    6. /root/tmp/php-5.2.3/ext/mysqli/mysqli.c:639: error: 'MYSQL_RPL_ADMIN' undeclared (first use in this function)
    7. *** Error code 1
     
    修改一下这个文件就可以

    cd /usr/include/mysql
    root@www[/usr/include/mysql]# vi mysql.h

      在第221行
     
     
    1. ... ...
    2. enum mysql_protocol_type
    3. {
    4. MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
    5. MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
    6. };
    7. /*
    8. There are three types of queries - the ones that have to go to
    9. the master, the ones that go to a slave, and the adminstrative
    10. type which must happen on the pivot connectioin
    11. */


    #添加下面的4行
     
     
    1. enum mysql_rpl_type
    2. {
    3. MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
    4. };

     
    2、如果出现以下错误:
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_bind_param':
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: 'gptr' undeclared (first use in this function)
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: (Each undeclared identifier is reported only once
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: for each function it appears in.)
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_execute':
    /root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:603: error: 'gptr' undeclared (first use in this function)
    make: *** [mysqli_api.lo] 错误 1
     
    修改一下这个文件就可以
    vi mysqli_api.c
    查找所有gptr,有四处分别位于行144、行150、行603、行607,以 char* 替换
     

    测试Mysqli运行状况:
    Vim mysqli.php
    <?php
    $mysqli = new mysqli("localhost", "my_user", "my_password", "dbname");
    /* check connection */ 
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s ", mysqli_connect_error());
        exit();
    }
    printf("Host information: %s ", $mysqli->host_info);
    /* close connection */
    $mysqli->close();
    ?> 
     
  • 相关阅读:
    C#密封类和密封方法
    C#类和结构以及堆和栈大烩菜(本来就迷,那就让暴风来的更猛烈吧!)
    C#类、对象、方法、属性详解(摘)感谢博客园,感谢提供者。
    软件工程第十五周总结
    软件工程课堂十一(计算最长英语单词链)
    软件工程第十四周总结
    梦断代码阅读笔记03
    软件工程课堂十(找水王)
    软件工程课堂九(用户体验评价)
    软件工程第十三周总结
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/4297784.html
Copyright © 2011-2022 走看看