MySQL 데이터베이스에 이미지를 저장하려고 할 때 일부 사용자는 이미지가 손상되는 문제에 직면할 수 있습니다. 제대로 삽입되지 않았습니다. 이러한 불일치는 PHP가 보간된 문자열 내에서 함수 호출을 처리하는 방법에 대한 오해로 인해 발생할 수 있습니다.
다음 코드에서는 바이너리 이미지 데이터를 데이터베이스에 저장하려는 의도가 있습니다.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','file_get_contents($tmp_image)')";
그러나 이 접근 방식은 "file_get_contents($tmp_image)"를 포함하는 문자열을 생성합니다. 실제 이미지 데이터입니다.
이 문제를 해결하려면 함수 호출을 문자열 내에서 명시적으로 연결해야 합니다.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
이제 이미지 데이터 쿼리를 실행하기 전에 문자열에 올바르게 보간됩니다.
바이너리 이미지 데이터에는 SQL 쿼리를 무효화할 수 있는 작은따옴표와 같은 특수 문자가 포함될 수 있습니다. 이를 완화하려면 보간 전에 데이터를 이스케이프해야 합니다.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
대량의 이미지 데이터를 데이터베이스에 저장하는 것은 비효율적일 수 있다는 점에 유의하는 것이 중요합니다. . 데이터베이스에 이미지 경로를 저장하고 전용 파일 시스템이나 콘텐츠 전송 네트워크(CDN)에 실제 이미지를 저장하는 등의 대체 저장 옵션을 고려해보세요.
위 내용은 PHP를 사용하여 MySQL에 BLOB(이미지)를 성공적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!