首頁 >後端開發 >php教程 >如何使用 PHP 成功將 Blob(映像)插入 MySQL?

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-28 01:24:09692瀏覽

How to Successfully Insert Blobs (Images) into MySQL using PHP?

使用PHP 將Blob 插入MySQL 資料庫

問題:

嘗試將映像儲存在MySQL 資料庫中,但插入不成功。資料庫表格有兩列:ImageId (int) 和 Image (longblob)。 PHP 程式碼使用 file_get_contents() 檢索映像數據,並使用以下 SQL 查詢將其插入 Image 列:

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

但是,映像資料不會儲存在資料庫中。

解決方案:

問題在於 PHP 程式碼建構 SQL 查詢的方式。 file_get_contents() 函數呼叫包含在查詢字串的單引號內,這表示未插入實際映像資料。為了解決這個問題,應該使用 PHP 的變數插值功能:

$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_real_escape_string(file_get_contents($tmp_image)) . "')";

附加註意事項:

在資料庫中儲存大型二進位資料可能會導致效能問題。考慮為影像和其他大型物件使用單獨的儲存介質,例如檔案系統或雲端儲存服務。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn