在php项目开发中,数据库连接参数是项目运行的基础配置,当数据库服务器迁移、账号密码变更或者需要切换数据库时,都需要修改对应的连接参数。不同的php数据库扩展修改参数的方式略有差异,下面分别介绍常见的操作方法。

原生mysql扩展参数修改(已不推荐)
早期php版本常用的mysql扩展已经过时,不建议在新项目中使用,但如果维护旧项目可能需要调整参数。连接时直接修改对应函数的参数即可:
<?php // 原始连接参数 $host = '127.0.0.1'; $user = 'root'; $pass = 'old_password'; $dbname = 'old_db'; // 修改参数后重新连接 $host = '192.168.0.1'; // 修改数据库地址 $pass = 'new_password'; // 修改密码 $dbname = 'new_db'; // 修改数据库名 $conn = mysql_connect($host, $user, $pass); mysql_select_db($dbname, $conn); ?>
mysqli扩展参数修改
mysqli是mysql扩展的改进版本,支持面向对象和面向过程两种写法,修改参数时调整对应传入的值即可。
面向过程写法
<?php
// 定义连接参数,修改时直接调整这些变量的值
$host = '127.0.0.1';
$username = 'root';
$password = 'old_pass';
$database = 'test_db';
$port = 3306;
// 修改参数示例:更换数据库地址和密码
$host = 'ipipp.com';
$password = 'new_pass_123';
// 建立连接
$conn = mysqli_connect($host, $username, $password, $database, $port);
if (!$conn) {
die('连接失败:' . mysqli_connect_error());
}
?>
面向对象写法
<?php
// 连接参数
$host = '127.0.0.1';
$user = 'root';
$pass = 'old_pass';
$db = 'test_db';
// 修改参数
$host = '192.168.0.1';
$pass = 'new_pass';
// 实例化mysqli对象
$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_error) {
die('连接错误:' . $mysqli->connect_error);
}
?>
PDO扩展参数修改
PDO是php官方推荐的数据库抽象层,支持多种数据库,修改参数时调整DSN字符串或者对应构造参数即可。
<?php
// 原始参数
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=old_db;charset=utf8';
$user = 'root';
$pass = 'old_pass';
// 修改参数:调整DSN和账号密码
$dsn = 'mysql:host=ipipp.com;port=3307;dbname=new_db;charset=utf8mb4';
$pass = 'new_password';
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die('连接失败:' . $e->getMessage());
}
?>
配置文件存储参数的最佳实践
不建议直接在业务代码里写死连接参数,最好把参数放到独立的配置文件中,修改时只需要调整配置文件即可,不用改动业务代码。
首先创建配置文件db_config.php,内容如下:
<?php
// 数据库配置参数
return [
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'pass' => 'old_password',
'dbname' => 'test_db',
'charset' => 'utf8mb4'
];
?>
然后在业务代码中引入配置文件获取参数:
<?php
// 引入配置文件
$dbConfig = require 'db_config.php';
// 使用mysqli连接示例
$conn = mysqli_connect(
$dbConfig['host'],
$dbConfig['user'],
$dbConfig['pass'],
$dbConfig['dbname'],
$dbConfig['port']
);
// 后续需要修改参数时,只需要修改db_config.php里的值即可
?>
注意事项
- 修改参数后需要重启php服务或者清除相关缓存,确保新参数生效
- 生产环境的数据库密码等敏感参数不要明文存储,建议做加密处理
- 修改参数前最好先备份原配置,避免修改错误导致项目无法运行
- 如果使用了框架,一般框架都有自带的数据库配置项,按照框架规范修改对应配置文件即可,比如ThinkPHP的
database.php配置