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> <?php function 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 是非常高效的選擇。