windows下php报错:Class 'mysqli' not found

     如题,我们通过php的扩展mysqli提供的api访问mysql,提示报错:Class 'mysqli' not found。这个错误的原因是php无法加载php_mysqli.dll这个动态库。解决办法就是配置相关变量,让程序找到这个位置。

     默认情况下php_mysqli.dll是存在php安装目录下的ext目录下:

    首先需要解决的是修改php的配置文件,windows下的配置文件就在php安装目录下的php.ini,如果没有,可以通过php.ini-development拷贝一份。我们找到其中的 ;extension=php_mysqli.dll,去掉开头的分号,让配置生效。意思是可以使用mysqli扩展。

    一般而言,这样做就可以了,但是我们系统如果没有配置环境变量PHPRC的话,我们的配置文件php.ini是不会生效的。为了让php.ini生效,我们需要配置PHPRC这个环境变量,就是指定php安装目录。

 

配置完了环境变量,我们就可以重启Apache服务器了,我们可以通过phpinfo()来检验我们的php相关的信息,首先配置文件在Loaded Configuration File这一栏中,不在是(none),而是php安装目录下的php.ini。

    其次就是mysqli扩展出现在这个页面的中间部分,如果上面两步操作缺一个,这部分就不会显示,当我们在php代码中调用mysqli的API就会报错:

 有的说需要将php安装目录下ext中的php_mysqli.dll拷贝到C:\Windows\system32中,这是因为php.ini没有生效,而且,我们还需要将php.ini拷贝到C:\Windows目录下,这个就不太灵活了,以后有了别的扩展,还需要将php的扩展拷贝过去。

 接下来,我们可以通过一个程序来查询mysql数据库test中的emp表id和name的相关信息,代码如下:

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";
$dbname = "test";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT id, name FROM emp";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}
$conn->close();

   我们在页面上访问这个php文件,得到如下所示的结果:

一个简单的mysqli的应用以及遇到的mysqli扩展的问题就解决了。 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值