首頁 > 資料庫 > mysql教程 > 如何使用 PHP 正確地將映像 Blob 插入 MySQL?

如何使用 PHP 正確地將映像 Blob 插入 MySQL?

Mary-Kate Olsen
發布: 2024-12-26 15:53:09
原創
203 人瀏覽過

How to Properly Insert Image Blobs into MySQL Using PHP?

使用 PHP 將 Blob 插入 MySQL 資料庫

當需要在 MySQL 資料庫中儲存映像時,可能會遇到困難。表結構如下:

mysql> describe ImageStore;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| ImageId | int(11)  | NO   | PRI | NULL    |       |
| Image   | longblob | NO   |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
登入後複製

以下查詢嘗試插入映像,但無法儲存預期的二進位資料:

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

問題在於函數的串聯在字串內調用file_get_contents($tmp_image ) 。 PHP 的變數插值僅適用於變量,不適用於函數呼叫。以下是三種解決方案:

解決方案1: 使用明確串聯:

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

解決方案2: 清理MySQL 查詢的二進位資料:

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

注意:如果可能的話,最好不要將大圖像儲存在 MySQL 資料庫中。

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

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