使用过程式写法连接 mysql 数据库,核心是调用 mysqli_connect 函数并传入主机、用户名、密码和数据库名。该函数会返回一个 mysqli 对象实例,若连接失败则返回 false。通过检查返回值是否为 false 即可判断连接状态,成功后可直接使用此对象执行后续 sql 查询。

如何验证连接是否成功并处理错误?
连接成功后需立即检查返回值,若为 false 应通过 mysqli_connect_error() 获取具体错误信息。这个过程式 API 不依赖面向对象语法,所有操作均通过全局或局部变量传递资源句柄完成,适合传统脚本结构。

$host = 'localhost';
$user = 'root';
$pass = ''; // 根据实际密码修改
$db = 'test_db';
$conn = mysqli_connect($host, $user, $pass, $db);
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected successfully to ' . $db;
mysqli_close($conn); // 显式关闭连接上述代码在本地环境运行正常时输出 Connected successfully to test_db。若密码错误或用户无权限,程序将终止并显示类似 Access denied for user 'root'@'localhost' 的错误提示。返回值类型为 object(成功)或 false(失败),无其他中间状态。
立即学习“PHP免费学习笔记(深入)”;
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。
如何在连接后执行简单查询并获取结果?
建立连接后,使用 mysqli_query() 发送 SQL 语句。对于 SELECT 查询,返回的是 mysqli_result 对象;对于 INSERT/UPDATE/DELETE,返回布尔值表示是否执行成功。获取数据时需配合 mysqli_fetch_assoc() 逐行提取关联数组。

// 假设已建立 $conn 连接
$sql = "SELECT id, name FROM users WHERE active = 1";
$result = mysqli_query($conn, $sql);
if ($result && mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row['id'] . ", Name: " . $row['name'] . "\n";
}
} else {
echo "No records found.";
}
mysqli_free_result($result); // 释放结果集内存
mysqli_close($conn); // 关闭连接当表中存在满足条件的记录时,每行输出形如 ID: 1, Name: Alice 的文本。若查询无结果,则输出 No records found.。mysqli_query() 在成功时返回 mysqli_result 对象或 true,失败时返回 false 并触发警告。mysqli_fetch_assoc() 每次调用返回一行关联数组,耗尽后返回 null。务必手动释放结果集以避免内存泄漏。
如果数据库服务器未启动或网络不可达会发生什么?
当目标 MySQL 服务未运行或防火墙阻断端口时,mysqli_connect() 将直接返回 false,并通过 mysqli_connect_error() 抛出类似 Can't connect to MySQL server on 'localhost' (111) 的系统级错误。此时无法执行任何后续数据库操作,必须优先恢复网络连接或服务状态。


















