本文介紹如何在LNMP (Linux, nginx, mysql/MariaDB, php) 環境中,使用PHP連接MySQL數據庫。我們將分別講解mysqli和pdo兩種擴展的用法。
方法一:使用MySQLi擴展
CREATE DATABASE mydatabase; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;
- php腳本編寫: 接下來,編寫PHP腳本連接數據庫。 請替換以下代碼中的數據庫配置信息為你的實際配置:
<?php // 數據庫配置信息 $servername = "localhost"; $username = "myuser"; $password = "mypassword"; $dbname = "mydatabase"; // 創建連接 $conn = new mysqli($servername, $username, $password, $dbname); // 檢查連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } echo "連接成功"; // 關閉連接 $conn->close(); ?>
方法二:使用PDO擴展
-
數據庫及用戶創建: 與方法一相同,先創建數據庫和用戶并賦予權限 (參見上面的SQL語句)。
立即學習“PHP免費學習筆記(深入)”;
-
PHP腳本編寫: 使用PDO擴展連接數據庫的PHP腳本如下,同樣需要將配置信息替換為你的實際配置:
<?php // 數據庫配置信息 $servername = "localhost"; $username = "myuser"; $password = "mypassword"; $dbname = "mydatabase"; try { // 創建PDO實例 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 設置PDO錯誤模式為異常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "連接成功"; } catch(PDOException $e) { echo "連接失敗: " . $e->getMessage(); } // 關閉連接 $conn = null; ?>
重要提示:
- 安全性: 切勿將數據庫用戶名和密碼直接硬編碼在PHP腳本中。 建議使用配置文件或環境變量來存儲這些敏感信息,以增強安全性。
- 錯誤處理: 生產環境中,需要更完善的錯誤處理機制,而不僅僅是簡單的錯誤信息輸出。
- 持久連接: 對于高并發應用,考慮使用持久連接以提升性能,減少連接建立和關閉的開銷。
選擇MySQLi還是PDO取決于你的項目需求和偏好。 兩者都能有效連接MySQL數據庫,并提供不同的功能和優勢。 遵循安全性和最佳實踐,確保你的數據庫連接安全可靠。