현재 위치: > 최신 기사 목록> PHP에서 Blob 및 Clob 데이터를 효율적으로 처리하기 위해 PDO를 사용하는 것에 대한 자세한 설명

PHP에서 Blob 및 Clob 데이터를 효율적으로 처리하기 위해 PDO를 사용하는 것에 대한 자세한 설명

M66 2025-06-11

개요

PHP에서 PDO (PHP Data Object)는 여러 데이터베이스 유형을 지원하는 강력하고 유연한 데이터베이스 액세스 인터페이스입니다. 이진 데이터 (BLOB) 또는 큰 텍스트 데이터 (CLOB)를 포함하는 필드를 처리 해야하는 경우 특수 처리 방법을 사용해야합니다. 이 기사에서는 PDO를 사용 하여이 두 가지 데이터 유형을 처리하고 코드 예제로 설명하는 방법을 자세히 설명합니다.

PDO 소개

PDO는 통합 객체 지향 API를 제공하고 MySQL, SQLite, PostgreSQL 및 기타 데이터베이스를 지원하여 교차-대사 개발 작업을 단순화합니다. PDO를 사용하면 개발자가 더 안전하고 유지 관리 가능한 데이터베이스 작업 코드를 작성할 수 있습니다.

블로브 데이터 유형을 처리하는 방법

Blob (Binary Large Object)은 그림, 오디오 및 비디오 파일과 같은 이진 데이터를 저장하는 데 사용됩니다. PDO를 사용하면 전처리 문 (준비) 및 자리 표시자를 사용하여 이러한 이진 데이터를 안전하게 삽입하고 읽을 수 있습니다.

 // 데이터베이스에 연결하십시오
$dsn = "mysql:host=localhost;dbname=test";
$user = "username";
$password = "password";

try {
    $pdo = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo "데이터베이스 연결에 실패했습니다: " . $e->getMessage();
    exit;
}

// 사진을 그대로 저장하십시오BLOB
$imagePath = 'path/to/image.jpg';
$imageData = file_get_contents($imagePath);

$stmt = $pdo->prepare("INSERT INTO images (data) VALUES (:data)");
$stmt->bindParam(':data', $imageData, PDO::PARAM_LOB);
$stmt->execute();

// 데이터베이스에서 사진을 읽고 표시합니다
$stmt = $pdo->query("SELECT data FROM images LIMIT 1");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$imageData = $row['data'];

header("Content-type: image/jpeg");
echo $imageData;

클로브 데이터 유형을 처리하는 방법

클로브 (문자 큰 객체)는 긴 텍스트 또는 풍부한 텍스트 내용과 같은 많은 양의 문자 데이터를 저장하는 데 사용됩니다. PDO에서 텍스트 데이터는 BindValue 메소드를 통해 SQL 문의 자리 표시 자에게 바인딩 될 수 있습니다.

 // 데이터베이스에 연결하십시오
$dsn = "mysql:host=localhost;dbname=test";
$user = "username";
$password = "password";

try {
    $pdo = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo "데이터베이스 연결에 실패했습니다: " . $e->getMessage();
    exit;
}

// 긴 텍스트를 저장하십시오CLOB
$textContent = "This is a long text";

$stmt = $pdo->prepare("INSERT INTO texts (content) VALUES (:content)");
$stmt->bindValue(':content', $textContent, PDO::PARAM_STR);
$stmt->execute();

// 데이터베이스에서 긴 텍스트를 읽고 표시합니다
$stmt = $pdo->query("SELECT content FROM texts LIMIT 1");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$textContent = $row['content'];

echo $textContent;

결론적으로

BLOB 및 CLOB 유형의 데이터를 처리하기 위해 PDO를 사용하는 경우 데이터 보안 및 무결성을 보장하기 위해 적절한 방법을 사용해야합니다. Blob 유형의 경우 Bindparam을 사용하여 이진 데이터를 사용하는 것이 좋습니다. 클로브 유형의 경우 BindValue로 문자 데이터를 바인드하십시오. 이 예제는 개발자가 특정 요구에 따라 참조하고 확장 할 수있는 명확한 코드 예제를 제공합니다.