귀하 PHP를 사용하여 MySQL 데이터베이스에 이미지를 저장하려고 하는데 예상대로 작동하지 않습니다. 이미지 데이터가 데이터베이스에 삽입되지 않습니다.
변수 보간 문제 확인
에서 쿼리에서 file_get_contents() 함수를 사용하여 이미지 데이터를 검색하고 있지만 명시적으로는 그렇지 않습니다. 결과를 쿼리 문자열에 연결합니다. 결과적으로 쿼리에는 실제 이미지 데이터 대신 "file_get_contents($tmp_image)" 문자열이 포함됩니다.
해결책 1: 명시적 연결
이미지를 연결하려면 데이터를 제대로 얻으려면 문자열에서 뛰어내려 작업을 수행해야 합니다. 명시적으로:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
삭제 처리
바이너리 이미지 데이터에 아포스트로피(')가 포함되어 있으면 SQL 쿼리가 중단될 수 있습니다. 이를 방지하려면 삭제를 위해 mysql_escape_string 함수를 통해 데이터를 실행해야 합니다.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
대체 저장소 고려
대용량 바이너리 데이터(예: 이미지) 저장 MySQL 데이터베이스로 인해 데이터베이스가 커질 수 있습니다. 가능하다면 이미지용 별도 파일 저장 시스템을 사용하는 것을 고려해 보세요.
위 내용은 PHP를 사용하여 MySQL 데이터베이스에 이미지 Blob을 성공적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!