首頁 >後端開發 >php教程 >如何使用 PHP 正確地將映像上傳到 MySQL 資料庫?

如何使用 PHP 正確地將映像上傳到 MySQL 資料庫?

Susan Sarandon
Susan Sarandon原創
2024-12-09 16:49:14700瀏覽

How to Properly Upload Images to a MySQL Database Using PHP?

使用 PHP 將映像上傳到 MySQL 資料庫

使用 PHP 將映像插入到 MySQL 資料庫需要幾個步驟。讓我們解決您提供的程式碼中的問題:

1。資料庫表結構:

確保您的資料庫表有一列定義為 BLOB 或 MEDIUMBLOB 類型來儲存影像資料。

2.準備好的語句:

不要使用已棄用的 mysql_query() 函數,而是使用 PDO 或 MySQLi 切換到準備好的語句。準備好的語句可以防止 SQL 注入漏洞。

3.正確的影像處理:

目前程式碼直接從臨時檔案擷取影像資料。這是一個安全風險。相反,應將 file_get_contents() 與 FILE_BINARY 選項合併使用,以確保正確處理二進位內容。

4.清理:

使用addslashes()或mysqli_real_escape_string()清理影像資料以防止SQL注入。

5.正確的插入查詢:

插入查詢應與表結構匹配並相應地清理資料。這是修正後的版本:

$stmt = $mysqli->prepare("INSERT INTO product_images (id, image, image_name) VALUES (?, ?, ?)");
$stmt->bind_param("sis", 1, $image, $image_name);
$image = file_get_contents($_FILES['image']['tmp_name'], FILE_BINARY);
$image_name = addslashes($_FILES['image']['name']);
if ($stmt->execute()) {
    echo "Image uploaded successfully";
} else {
    echo "Error: " . $mysqli->error;
}

6。 HTML 表單:

HTML 表單應使用 enctype="multipart/form-data" 屬性,該屬性允許在請求中傳輸二進位資料。此外,為

使用正確的結束標籤。元素。
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File:</label>
    <input type="file" name="image">
    <input type="submit">
</form>

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

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