"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 데이터베이스에 삽입하지 못하는 PHP 이미지 업로드 문제를 해결하는 방법은 무엇입니까?

MySQL 데이터베이스에 삽입하지 못하는 PHP 이미지 업로드 문제를 해결하는 방법은 무엇입니까?

2025년 1월 16일에 게시됨
검색:271

How to Troubleshoot PHP Image Uploads Failing to Insert into a MySQL Database?

PHP 코드를 사용하여 MySQL 데이터베이스에 이미지를 업로드하는 방법

MySQL 데이터베이스에 이미지를 업로드하는 것은 웹 애플리케이션을 개발할 때 일반적인 작업입니다. 그러나 이미지 데이터를 효율적으로 처리하려면 PHP 코드가 올바르게 구성되었는지 확인하는 것이 중요합니다.

문제 설명

개발자가 PHP 코드에 문제가 발생했습니다. MySQL 데이터베이스에 이미지를 삽입하는 것을 목표로 합니다. 코드는 오류 메시지를 생성하지 않지만 이미지 데이터를 데이터베이스에 삽입하지 못합니다. 코드 조각은 아래에 제공됩니다:

$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
  echo $current_id;
 //echo 'Successfull';
}
else
{
  echo mysql_error();
}

솔루션

분석 결과 코드에서 다음 문제가 확인되었습니다.

  • SQL 테이블 구성: 이미지 저장용으로 지정된 MySQL 테이블의 열이 이진 데이터를 수용할 수 있도록 BLOB 유형인지 확인하세요.
  • MySQL 함수 사용법: 최신 PHP 코드는 데이터베이스 상호 작용을 위해 더 이상 사용되지 않는 mysql 함수 대신 PDO 또는 MySQLi 함수를 활용해야 합니다.
  • 양식 구조: 코드 조각에 제공된 HTML 양식은 오래되었으며 다음 형식을 준수해야 합니다:
  • 이미지 이스케이프: 이미지 데이터를 BLOB으로 처리할 때 구문 오류를 방지하기 위해 mysql_real_escape_string()을 사용하여 이스케이프되었는지 확인하세요.

수정된 코드

다음 코드는 필요한 내용을 통합합니다. 수정 사항:

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}

이러한 문제를 해결함으로써 PHP 코드는 이미지를 MySQL 데이터베이스에 성공적으로 업로드할 수 있습니다. 또한 성능 및 확장성 이유로 이미지 파일을 데이터베이스 내부가 아닌 디스크에 저장하는 것을 고려하는 것이 좋습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3