【问题标题】:PHP, Failed connecting to databasePHP,连接数据库失败
【发布时间】:2020-05-05 19:38:51
【问题描述】:

我无法连接到我的数据库,每当我尝试时它都会给我这个错误

我尝试连接到默认数据库,如 mysql,它工作正常,就像图片所示

我正在使用最新版本的 wamp 服务器,如果需要,这里是代码:

$servername = "localhost";
$username = "root";
$password = "";
$my_db="mydb";

$link=mysqli_connect($servername, $username, $password, $my_db);
if (mysqli_connect_error()) {
    die("there is an error");
} else {
    echo "connected to ".$my_db;
}

【问题讨论】:

  • 请原谅这个显而易见的问题,但你真的有一个名为 mydb 的数据库,而不是表吗?
  • 您是否创建了一个名为 mydb 的数据库?
  • 你被原谅了@Dave :)
  • 和用于正确连接的相同代码?
  • 连接mysql时请检查正确方法检查错误You can find the manual page here

标签: php


【解决方案1】:

Wampserver 3.2.0 新安装或升级

这可能对其他人有所帮助

可能xamp 也使用mariaDB 作为默认值。

Wamp服务器自带mariaDB和mysql,在3306端口默认安装mariaDB

mysql 工作!

在安装时它要求使用mariaDBMySql,mariaDB 被选中为默认值,您无法更改它,检查mysql 选项并安装。

安装完成后,mariaDB 在默认端口上运行,mysql 在另一个端口上运行。

右键单击wamp 图标,其运行应位于右下角,转到工具并查看您的mysql 运行端口。

并包含在您的数据库连接中,如下所示:

$host = 'localhost';
$db   = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$port = '3308';

$dsn = "mysql:host=$host;dbname=$db;port=$port;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
try {
     $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

Note :我正在使用pdo。

更多信息请看这里:https://sourceforge.net/projects/wampserver/

【讨论】: