嘗試在 MySQL 資料庫中儲存映像時,如果查詢無法插入映像,則可能會遇到問題。本文將提供此問題的解決方案。
問題:
在以下查詢中,file_get_contents($tmp_image) 被視為字串而不是函數呼叫:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','file_get_contents($tmp_image)')";
解1:
跳出字串並執行明確串聯:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
解決方案2:2:
轉義二進位資料以防止無效查詢:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
解決方案3:
透過將映像儲存在檔案系統中或使用雲端儲存服務來最小化資料庫大小。
以上是如何使用 PHP 在 MySQL 中正確儲存映像(Blob)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!