現在の位置: ホーム> 最新記事一覧> PHP PDOを使用してバイナリデータを処理する:読み取り、書き込み、更新の詳細な説明

PHP PDOを使用してバイナリデータを処理する:読み取り、書き込み、更新の詳細な説明

M66 2025-06-26

PHP PDOを使用して、データベースのバイナリデータを操作します

アプリケーションを開発する場合、画像やオーディオなどのバイナリファイルは、データベースに保存する必要があることがよくあります。 PHPは強力なPDO(PHPデータオブジェクト)拡張機能を提供します。これにより、このタスクを安全かつ効率的に完了できます。この記事では、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();
}

データベースからバイナリデータをお読みください

画像データを保存するための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";

要約します

この記事では、PDOを使用して、読み取り、書き込み、更新、削除など、実際のコードを介してデータベース内のバイナリデータの操作を拡張する完全なプロセスについて説明します。これらの方法を習得すると、画像ライブラリ、ユーザーアバターアップロード、オーディオ、ビデオ管理、その他のシナリオなど、機能が豊富なデータ駆動型アプリケーションをより柔軟に構築できます。