WithCoderWithCoderWithCoder

PHP7版本连接Access数据库Fatal error:Call to undefined function odbc_connect()

    首先描述下本人遇到的问题:

    因为需要读取Access数据库mdb中的数据,使用odbc_connect连接数据库。开发环境使用的是Wamp(PHP版本为7.0.23)。因为开始的时候,代码是在5.0版本中运行(已经在php.ini中开启odbc扩展)是没有问题的。在把环境变量设置为PHP7.0.23版本所在的路径后,代码在运行出现错误:

Fatal error: Uncaught Error: Call to undefined function odbc_connect() in E:\access.php:87

    在网上搜索解决方案,给出的都是在php.ini中开启odbc扩展。但本人设置的PHP环境变量和wamp的PHP版本都是指向同一个目录,因此想着应该不是设置的问题,尝试了多种方法,在cmd中运行脚本一直报上面的错误。最后打开php目录下的php.ini,找到odbc扩展,发现扩展没有开启(前面的分号还在)。网上搜索后发现,cmd使用的php.ini和wamp使用的不是同一个文件,具体如下:

    1. wamp根目录下  /bin/php/php7.0.1023/php.ini,这个文件是php命令行( cli )模式下的配置文件。所有如果如果不是在命令行模式运行修改这个文件是不起作用的

    2. wamp根目录下  /bin/php/php7.0.23/phpForApache.ini,一般我们在wamp中更改的都是这个文件, 在Apache模式运行下加载这个文件

    因此,最终解决如下:

        在 php.ini 中将 extension=odbc,extension=pdo_odbc前面的分号(;)取消

    另外,由于版本各不同,本人版本7.0.23,网上其他版本基本说法:取消 extension=php_odbc.dll ,extension=php_pdo_odbc.dll前的分号,但目前很多版本里面后缀是没有  .dll 的。因此建议模糊搜索 odbc  关键字  看前面是否有 extension=,然后打开相对应注释尝试即可。

欢迎分享交流,转载请注明出处:WithCoder » PHP7版本连接Access数据库Fatal error:Call to undefined function odbc_connect()