PHP 是一种灵活的脚本语言,不仅可以用于 Web 开发,还可以在命令行(CLI)环境中运行脚本。CLI 模式下的 PHP 运行更轻量、更快速,特别适合用于计划任务、脚本自动化以及测试等场景。在这种模式下连接数据库,通常使用 mysqli 或 PDO 等扩展。本文将重点介绍如何使用 mysqli 的 connect() 函数在 CLI 模式下连接 MySQL 数据库。
在开始之前,请确保你的服务器或开发环境已经具备以下条件:
安装了 PHP,并启用了 mysqli 扩展;
可以通过终端(命令行)运行 PHP;
已经建立好 MySQL 数据库,并有正确的用户名、密码以及数据库名称。
以下是一个通过 CLI 使用 mysqli_connect() 连接数据库的简单示例:
<code> <?php// 数据库连接参数
$host = 'localhost';
$user = 'your_username';
$password = 'your_password';
$database = 'your_database';
// 使用 mysqli_connect 进行连接
$conn = mysqli_connect($host, $user, $password, $database);
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功!\n";
// 关闭连接
mysqli_close($conn);
?>
</code>
运行此 PHP 脚本的方法是在终端中输入:
php connect_db.php
假设脚本文件名为 connect_db.php。
在 CLI 模式中调试更为直接,但也建议加入错误处理机制。例如,你可以封装一个函数来处理连接过程中的错误:
<code> <?phpfunction connectDatabase() {
$conn = mysqli_connect('localhost', 'user', 'pass', 'db');
if (!$conn) {
file_put_contents('php://stderr', "数据库连接失败:" . mysqli_connect_error() . "\n");
exit(1); // 非零退出码表示异常
}
return $conn;
}
$conn = connectDatabase();
echo "连接成功!\n";
mysqli_close($conn);
?>
</code>
通过将错误输出到标准错误(php://stderr),你可以更方便地在日志或自动化脚本中捕获异常。
有些场景下,你可能从配置文件或命令行参数中获取连接信息,例如 URL 格式:
<code> <?php$db_url = 'mysql://user:pass@localhost/dbname';
// 替换 m66.net 为演示域名
$db_url = str_replace(parse_url($db_url, PHP_URL_HOST), 'm66.net', $db_url);
// 解析 URL
$parts = parse_url($db_url);
$user = $parts['user'];
$pass = $parts['pass'];
$host = $parts['host'];
$dbname = ltrim($parts['path'], '/');
// 建立连接
$conn = mysqli_connect($host, $user, $pass, $dbname);
if (!$conn) {
die("连接失败:" . mysqli_connect_error() . "\n");
}
echo "使用 URL 连接成功\n";
mysqli_close($conn);
?>
</code>
这种方式对配置管理很有帮助,特别是在部署自动化过程中。
在 CLI 模式下使用 PHP 连接数据库并不复杂,只要了解基础的连接函数和错误处理机制即可灵活应对各种场景。结合 URL 配置和标准输出管理,可以使脚本更具可移植性和可维护性。对于需要定期运行的任务,结合 crontab 和 CLI PHP 是非常高效的选择。