在php中连接mysql数据库时,用户名和密码通过`mysqli_connect()`函数或`pdo`构造函数的参数传入。以最常见的`mysqli`扩展为例,调用该函数并依次传入主机、用户名、密码和数据库名即可建立连接;若连接失败,需检查凭证是否正确或数据库服务是否运行。

mysqli_connect()的参数顺序是什么
使用mysqli_connect()时,必须严格按照“主机、用户名、密码、数据库名”的顺序传递参数。如果省略数据库名,连接将成功但默认处于无数据库状态,后续查询需先指定库。确保用户名和密码字符串准确无误,避免多余空格导致认证失败。

$host = 'localhost';
$user = 'root';
$pass = 'your_password';
$db = 'test_db';
$conn = mysqli_connect($host, $user, $pass, $db);
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected successfully';预期结果:控制台输出“Connected successfully”,且$conn为有效的mysqli对象实例。若密码错误,则抛出“Access denied”异常。
立即学习“PHP免费学习笔记(深入)”;
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。
使用PDO时DSN格式如何构建
在使用PDO连接MySQL时,数据源名称(DSN)需包含驱动类型、主机和数据库名,而用户名和密码作为独立参数传入构造函数。DSN格式通常为mysql:host=localhost;dbname=test_db,这种写法更灵活,支持多种数据库后端切换。

$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8mb4';
$user = 'root';
$pass = 'your_password';
try {
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
echo 'PDO connected successfully';
} catch (PDOException $e) {
die('PDO Connection failed: ' . $e->getMessage());
}预期结果:控制台输出“PDO connected successfully”,且$pdo为有效的PDO对象。设置ERRMODE_EXCEPTION可确保出错时抛出异常而非静默失败。
连接失败时常见的错误原因有哪些
当连接返回错误或抛出异常时,最常见的原因是密码拼写错误、用户权限不足或MySQL服务未启动。此外,若主机名为localhost,PHP可能尝试使用Unix socket而非TCP/IP连接,此时需确保socket路径正确或改用127.0.0.1强制使用TCP。


















