當前位置: 首頁> 最新文章列表> 使用PHP PDO處理二進制數據:讀取、寫入與更新詳解

使用PHP PDO處理二進制數據:讀取、寫入與更新詳解

M66 2025-06-26

使用PHP PDO操作數據庫中的二進制數據

在開發應用程序時,常常需要將圖片、音頻等二進製文件存入數據庫,PHP 提供了強大的PDO(PHP Data Objects)擴展,可以安全高效地完成這項任務。本文將分步驟介紹如何通過PDO 連接數據庫,並實現二進制數據的讀取、寫入、更新和刪除操作。

如何使用PDO 連接數據庫

使用PDO 與數據庫建立連接非常簡單,以下示例展示了連接MySQL 數據庫的基本方式:

 
$dsn = 'mysql:host=localhost;dbname=mydb';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected to database successfully";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

從數據庫讀取二進制數據

假設數據庫中有一個photos表,包含一個photo_data字段用於存儲圖片數據。以下代碼展示如何讀取該字段並輸出圖像內容:

 
$query = "SELECT photo_data FROM photos WHERE id = :id";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':id', $id);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);

$photoData = $result['photo_data'];

header('Content-Type: image/jpeg');
echo $photoData;

向數據庫寫入二進制數據

可以通過讀取文件的內容,並將其存入數據庫。以下示例展示如何將本地圖片寫入數據庫:

 
$photoData = file_get_contents('path/to/photo.jpg');

$query = "INSERT INTO photos (photo_data) VALUES (?)";
$stmt = $pdo->prepare($query);
$stmt->bindParam(1, $photoData, PDO::PARAM_LOB);
$stmt->execute();

echo "Photo data inserted into database successfully";

更新已有的二進制數據

若需更新數據庫中已有的圖片數據,可以使用以下代碼完成操作:

 
$photoData = file_get_contents('path/to/new_photo.jpg');

$query = "UPDATE photos SET photo_data = ? WHERE id = ?";
$stmt = $pdo->prepare($query);
$stmt->bindParam(1, $photoData, PDO::PARAM_LOB);
$stmt->bindParam(2, $id);
$stmt->execute();

echo "Photo data updated successfully";

從數據庫中刪除二進制數據

如果不再需要某條記錄的圖片數據,可以將其從數據庫中刪除:

 
$query = "DELETE FROM photos WHERE id = :id";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':id', $id);
$stmt->execute();

echo "Photo data deleted successfully";

總結

本文通過實際代碼講解了使用PHP 的PDO 擴展操作數據庫中的二進制數據的完整流程,包括讀取、寫入、更新與刪除。掌握這些方法可以幫助你更靈活地構建功能豐富的數據驅動型應用,如圖片庫、用戶頭像上傳、音視頻管理等場景。