Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tải hình ảnh lên cơ sở dữ liệu MySQL bằng mã PHP

Trước tiên, bạn nên kiểm tra xem cột hình ảnh của bạn có phải là loại BLOB không !

Tôi không biết gì về bảng SQL của bạn, nhưng nếu tôi cố gắng lấy bảng của riêng tôi làm ví dụ.

Chúng tôi có các trường id (int), image (blob) và image_name (varchar (64)).

Vì vậy, mã sẽ trông như thế này (giả sử ID luôn là '1' và hãy sử dụng mysql_query này):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}

Bạn đang làm sai theo nhiều cách. Không sử dụng các hàm mysql - chúng không được dùng nữa! Sử dụng PDO hoặc MySQLi . Bạn cũng nên nghĩ đến việc lưu trữ các vị trí tệp trên đĩa. Sử dụng MySQL để lưu trữ hình ảnh được cho là Bad Idea ™. Việc xử lý bảng SQL với dữ liệu lớn như hình ảnh có thể gặp vấn đề.

Ngoài ra, biểu mẫu HTML của bạn không đạt tiêu chuẩn. Nó sẽ trông như thế này:

<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File: </label><input type="file" name="image" />
    <input type="submit" />
</form>

Chú thích bên lề:

Khi xử lý tệp và lưu trữ chúng dưới dạng BLOB, dữ liệu phải được thoát bằng cách sử dụng mysql_real_escape_string() , nếu không, nó sẽ dẫn đến lỗi cú pháp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_SET () so với JSON_INSERT () so với JSON_REPLACE () trong MySQL:Sự khác biệt là gì?

  2. JSON_STORAGE_FREE () - Tìm hiểu Dung lượng lưu trữ được giải phóng sau khi cập nhật tài liệu JSON trong MySQL

  3. Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công

  4. Làm thế nào để Kiểm tra xem Nút Radio được Kiểm tra hoặc Chọn trong jQuery?

  5. mysqli hay chết, nó có phải chết không?