如何使用 PHP 成功將 BLOB(映像)插入 MySQL?

Patricia Arquette
發布: 2024-11-27 22:56:11
原創
310 人瀏覽過

How Can I Successfully Insert BLOBs (Images) into MySQL Using PHP?

使用PHP 將BLOB 插入MySQL 資料庫:問題與解決方案

嘗試在MySQL 資料庫中儲存映像時,某些使用者可能會遇到影像不正確的問題未正確插入。這種差異可能是由於對 PHP 如何處理內插字串中的函數呼叫的誤解而產生的。

問題

在以下程式碼中,目的是將二進位映像資料儲存在資料庫中:

$sql = "INSERT INTO ImageStore(ImageId,Image)               
        VALUES('$this->image_id','file_get_contents($tmp_image)')";
登入後複製

但是,這種方法會建立一個包含「file_get_contents($ tmp_image)」的字串,而不是實際的字串

解決方案1:明確串聯

要解決此問題,函數呼叫必須在字串中明確串聯:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
登入後複製

現在,圖像資料是在執行查詢之前正確插入字串中。

解決方案 2:轉義特殊字元

二進位影像資料可能包含特殊字符,例如單引號,這可能會使 SQL 查詢無效。為了緩解這種情況,應該在插值之前對資料進行轉義:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
登入後複製

解決方案3:替代儲存注意事項

需要注意的是,在資料庫中儲存大量影像數據可能效率低。考慮替代儲存選項,例如將影像路徑儲存在資料庫中,將實際影像儲存在專用檔案系統或內容交付網路 (CDN) 中。

以上是如何使用 PHP 成功將 BLOB(映像)插入 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板