mysqli无法加载

时间:2017-06-26 19:57:19

标签: php apache mysqli

当我从命令行运行php脚本时,mysqli模块加载并运行,但是当我尝试从Apache运行相同的php脚本时,我没有运气。这就是我所做的:

1)取消注释php.ini

中的以下行
extension=php_mysqli.dll  ;uncommented--should load

2)在`php.ini

中更新了我的扩展位置
extension_dir = "C:/php/ext"

3)更新了Apache的php.ini

httpd.conf文件的位置
PHPIniDir “C:/php”

4)重启Apache

我尝试过这个过程的一些变种,但每次运行php脚本(通过chrome调试器上的网络选项卡查看)时,我得到以下结果:

<b>Fatal error</b>:  Uncaught Error: Class 'mysqli' not found in 
C:\Apache24\htdocs\mysite\WebAPI\database.php:61

当我从cmd运行相同的php代码时,我没有收到此错误。我在Windows 10上使用Apache 2.4.25和MySQL 5.7运行php 7.1.5。

修改

就我的代码而言,我在一开始就失败了,调用了以下函数:

function open_database()
{
    if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
        echo('We don\'t have mysqli!!!');
    } else {
        echo('Phew we have it!');
    }
    $dbinfo = get_dbinfo();
    if ($dbinfo == null) return null;
    $db = new mysqli('localhost', $dbinfo[0], $dbinfo[1], $dbinfo[2]);
    return $db;
}

CMD的输出:

 Phew we have it!

Apache的输出:

We don't have mysqli!!!<br />
<b>Fatal error</b>:  Uncaught Error: Class 'mysqli' not found in 
 C:\Apache24\htdocs\mysite\WebAPI\database.php:61
Stack trace:
#0 C:\Apache24\htdocs\mysite\WebAPI\visitor_counts.php(116): open_database()
#1 {main}
  thrown in <b>C:\Apache24\htdocs\mysite\WebAPI\database.php</b> on line <b>61</b><br />

运行phpinfo()我只能在其中找到一行mysqli。这是我看到的图片:

0 个答案:

没有答案