PHP连接MySQL-踩坑总结

写在前面


版本迭代,网上很多解决方法都失效了,在此记录一下。
版本:PHP7.4+MySQL8.0

PHP安装可参考:PHP安装配置(Windows和Linux)-一篇就够了
Apache安装可参考:Apache安装配置(Windows和Linux)-有手就行
在这里插入图片描述

mysqli扩展


Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in D:\tools\Apache24\htdocs\UIUE\index.php:6 Stack trace: #0 {main} thrown in

PHP7之后就移除了mysql扩展(可以自己打补丁 ),而是推荐使用mysqli扩展和pdo_mysql。

启用mysqli扩展:

  1. 在PHP安装目录下以记事本方式打开pgp.ini
    在这里插入图片描述

  2. 搜索extension=mysqli,去掉前面;
    在这里插入图片描述

  3. 搜索extension_dir,修改/ext所在位置
    在这里插入图片描述
    然后建议重启下Apache

  4. 测试

<?php
	phpinfo();
?>

在这里插入图片描述

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

MySQL权限


Warning: mysqli_connect(): (HY000/1045): Access denied for user ‘root’@‘localhost’ (using password: YES) in D:\tools\Apache24\htdocs\UIUE\index.php on line 6
Error: Unable to connect to MySQL. Debugging errno: 1045 Debugging error: Access denied for user ‘root’@‘localhost’ (using password: YES)

  1. 修改root密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';

在这里插入图片描述

  1. 授权
grant all privileges on *.* to root@localhost;
flush privileges;

在这里插入图片描述

测试


<?php
$servername = "localhost";
$username = "root";
$password = "password";//改成你的密码

$link = mysqli_connect($servername, $username, $password);

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great.\n" . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

在这里插入图片描述
至此PHP就成功连接MySQL了o(* ̄▽ ̄*)o,mysqli相关用法可查官方文档
在这里插入图片描述

原创不易,请勿转载本不富裕的访问量雪上加霜
博主首页:https://wzlodq.blog.csdn.net/
微信公众号:唔仄lo咚锵
如果文章对你有帮助,记得一键三连❤

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页