programing

MariaDB 테이블의 INSERT에 이미지 업로드가 실패하고 PDO::PARAM_LOB

topblog 2023. 9. 5. 19:33
반응형

MariaDB 테이블의 INSERT에 이미지 업로드가 실패하고 PDO::PARAM_LOB

제 문제는 PDO를 사용할 때::html 형식에서 보낸 사진이 MariaDB 테이블에 삽입되지 않은 경우 bindParam() 메서드의 PARAM_LOB 매개 변수입니다.phpMyAdmin은 나중에 테이블 열 'photo'를 비워두도록 표시합니다.PDO를 사용하지 않을 때 이미지가 테이블에 성공적으로 삽입됩니다.:PARAM_LOB 그러나 이로 인해 다음과 같은 알림이 발생합니다.C:\xampp\htdocs\에서 배열을 문자열로 변환테스트 사이트\php-sell 폼 핸들러입니다.웹 페이지에서 사용자에게 표시할 80행의 php.텍스트를 업로드하고 PDO를 사용하는 동일한 양식의 다른 필드가 있습니다.PARAM_STR.이 텍스트 데이터는 항상 동일한 테이블에 성공적으로 삽입됩니다.PDO를 사용하여 작업에 삽입하려면 어떻게 해야 합니까::PARAM_LOB?

제가 S/O에서 찾을 수 있는 가장 가까운 문제는 PHP/PDO/MySQL입니다. MEDIABLOB에 삽입하면 잘못된 데이터가 저장됩니다. 그러나 이미지가 테이블에 실제로 삽입되지만 손상된 형태로 저장됩니다.

Apache/2.4.29(Win32) OpenSSL/1.1.0g PHP/7.2.2 및 10.1.30-Maria를 사용하고 있습니다.DB

내 코드는 다음과 같습니다.

$host = '127.0.0.1';
$db = 'test_db2';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";



$opt = [PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false 
    ];


$pdo=new PDO($dsn, $user, $pass, $opt);



if (isset($_FILES ['photo'])) {

$photo=$_FILES['photo'];


$stmt_user = $pdo->prepare("INSERT INTO users_table1(photo) VALUES(:photo)");

$stmt_user->bindParam(':photo', $photo, PDO::PARAM_LOB);    

$stmt_user->execute();
}

도와주셔서 감사합니다!

언급URL : https://stackoverflow.com/questions/49940352/uploading-image-to-insert-in-mariadb-table-fails-with-pdoparam-lob

반응형