PHP 資料庫連線的常見問題和解決方法有:連線失敗:檢查連線資訊和MySQL 服務狀態;查詢失敗:檢查查詢語法、表格和字段,以及連線有效性;插入、更新、刪除失敗:檢查SQL語句、目標表和字段,以及連接有效性;資料庫連接洩漏:明確關閉連接或使用try...catch...finally 區塊。
PHP資料庫連線的常見問題及解決方法
一、連線失敗
問題1:mysqli_connect()
傳回false
$conn = mysqli_connect("localhost", "username", "password", "database"); if (!$conn) { echo "连接失败:" . mysqli_connect_error(); }
解決方法:
問題2:PDO::__construct()
拋出例外
$dsn = "mysql:host=localhost;dbname=database"; $conn = new PDO($dsn, "username", "password");
解決方法:
二、查詢失敗
問題1:mysqli_query()
回傳false
$query = "SELECT * FROM users"; $result = mysqli_query($conn, $query); if (!$result) { echo "查询失败:" . mysqli_error($conn); }
解決方法:
問題2:PDOStatement::execute() 拋出例外
$stmt = $conn->prepare($query); $stmt->execute();
解決方法:
三、插入、更新、刪除失敗
#問題:mysqli_affected_rows()
或PDOStatement:: rowCount()
傳回0
解決方法:
四、其他問題
問題:資料庫連線洩漏
解決方法:
mysqli_close()
或PDO::close()
明確關閉連線。 try...catch...finally
區塊確保連線在任何情況下都已關閉。 實戰案例
連接到MySQL 資料庫
// PHP >= 8.0,推荐使用 PDO $dsn = "mysql:host=localhost;dbname=database"; $conn = new PDO($dsn, "username", "password"); // PHP < 8.0,使用 mysqli_connect() $conn = mysqli_connect("localhost", "username", "password", "database");
查詢資料庫
// PDO $stmt = $conn->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$id]); $result = $stmt->fetchAll(); // mysqli $query = "SELECT * FROM users WHERE id = " . $id; $result = mysqli_query($conn, $query); $result = mysqli_fetch_all($result);
以上是PHP資料庫連線的常見問題及解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!