使用 XAMPP 连接到数据库
Posted
技术标签:
【中文标题】使用 XAMPP 连接到数据库【英文标题】:Connection to database using XAMPP 【发布时间】:2021-03-21 06:27:17 【问题描述】:这是我第一次使用 php。我在 Mac 上使用 XAMPP。
mysql、Apache 和 localhost:8080 现在都在工作。 我创建了这个名为 test.php 的文件并将其保存在 lampp/htdocs 中:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Connection</title>
</head>
<body>
<?php
$servername = "localhost:8080";
$username = "root";
$password = "root";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn)
die("Connection failed: " . mysqli_connect_error($conn));
else
echo "Connected successfully";
?>
</body>
</html>
但是,当我转到 localhose:8080/test.php 时,会打开一个空白页面,但没有显示任何内容
【问题讨论】:
使用这个来开启错误显示。 ini_set('display_errors', 1); ini_set('display_startup_errors', 1);错误报告(E_ALL);并检查您的网络服务器错误日志。 我试过了。这是因为我不能在 'mysqli_connect_error()' 中添加参数但是,现在它显示我 连接失败:连接被拒绝你知道为什么会发生这种情况localhost:8080
是您的网络服务器,MySQL 端口通常是 3306
【参考方案1】:
端口 8080 用于您的 Web 服务器。您的 MySQL 服务器默认侦听端口 3306。如果端口不同,您可以检查 XAMPP 设置,但应该是 3306。这意味着您可以省略端口号。
使用 mysqli 连接数据库只需要 3 行代码:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'user', 'pass', 'db_name', 3306); // you can omit the last argument
$mysqli->set_charset('utf8mb4'); // always set the charset
【讨论】:
【参考方案2】:mysqli_connect
的服务器名参数只是服务器名。
如果你想提供一个端口号,那么在mysqli_connect
的第五 参数中。它没有混入第一个。
也就是说:
-
由于
localhose:8080/test.php
显示了一个网页,很明显您在端口 8080 上运行 HTTP 服务器,而不是您的数据库服务器。
出于性能原因,您应该更喜欢使用与 MySQL/MariaDB 的套接字连接,而不是 TCP/IP 端口
【讨论】:
看起来 localhost 会自动执行此操作。 php.net/manual/en/mysqli.quickstart.connections.php @JasonK — 是的,但端口是 TCP/IP 的域,而不是本地套接字。 我刚刚使用手册中的代码对其进行了测试。将端口与 locaclhost 一起使用。它仍然通过 UNIX 套接字声明 Localhost。 @JasonK 这对我来说是新的。你在什么系统上试试这个? ub 20.04 LTS php 7.4.3以上是关于使用 XAMPP 连接到数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Perl CGI 和 XAMPP 连接到 MySQL 数据库