PHP 网站数据库连接问题解决方案
·
PHP 网站数据库连接问题解决方案
数据库连接是 PHP 网站开发中的核心部分,以下是关于 PHP 数据库连接的常见问题及解决方案:
1. 基本数据库连接方法
MySQLi 面向对象方式
php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
PDO 方式
php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
}
catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
?>
2. 常见连接问题及解决
问题1:连接被拒绝
错误信息:Warning: mysqli_connect(): (HY000/2002): Connection refused
可能原因:
- MySQL 服务未运行
- 使用了错误的主机名(非本地连接时)
- 防火墙阻止了连接
解决方案:
php
// 检查MySQL服务是否运行(Linux)
// systemctl status mysql
// 确保使用正确的主机名
$conn = new mysqli("127.0.0.1", "user", "password", "database"); // 尝试使用IP而非localhost
问题2:访问被拒绝
错误信息:Access denied for user 'username'@'localhost'
可能原因:
- 用户名或密码错误
- 用户没有从当前主机访问的权限
解决方案:
php
// 确保使用正确的凭据
$conn = new mysqli("localhost", "correct_username", "correct_password", "database");
// 或者在MySQL中授予权限
// GRANT ALL PRIVILEGES ON database.* TO 'username'@'localhost' IDENTIFIED BY 'password';
// FLUSH PRIVILEGES;
问题3:数据库不存在
错误信息:Unknown database 'dbname'
解决方案:
php
// 确保数据库存在,或先创建数据库
// CREATE DATABASE dbname;
// 或者检查拼写错误
$conn = new mysqli("localhost", "user", "password", "existing_database");
3. 最佳实践
使用配置文件存储数据库凭据
php
// config.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'database');
?>
// 在其他文件中
require_once 'config.php';
$conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME
更多推荐


所有评论(0)