Hướng dẫn can mysql store images and videos? - mysql có thể lưu trữ hình ảnh và video không?

Trong MySQL, bạn có thể lưu trữ bất kỳ nội dung nhị phân nào trong bảng bằng cách sử dụng kiểu dữ liệu nhị phân hoặc varbinary cho một cột. Khá tất cả hệ thống cơ sở dữ liệu như một loại dữ liệu như vậy. Nó có thể được sử dụng để lưu trữ một nội dung tệp đầy đủ như hình ảnh, video, âm thanh, ... hoặc chỉ là một đoạn trích nhị phân.

Tuy nhiên, lưu trữ các tệp nhị phân trong cơ sở dữ liệu được coi là một thực tiễn xấu, bởi vì nó hoàn toàn luôn mang đến sự thất vọng. Thật vậy, một tệp được lưu trữ trong cơ sở dữ liệu không thể dễ dàng xử lý để tải xuống, bao gồm một trang HTML, phát trực tuyến, .... Và nó khá luôn luôn phức tạp để thao tác vì chiều dài của nó. Thông thường, một tệp được sắp xếp trong cơ sở dữ liệu là bất lợi so với một tệp được lưu trữ trong một thư mục. Nó được khuyên nên lưu trữ tên tệp trong cơ sở cơ sở dữ liệu và lưu tệp thực tế trong thư mục vật lý.

Nói chung, khi chúng tôi tải lên tệp hình ảnh trong PHP, hình ảnh được tải lên được lưu trữ trong thư mục của máy chủ và tên hình ảnh tương ứng được lưu trữ trong cơ sở dữ liệu. Tại thời điểm hiển thị, tệp được lấy từ máy chủ và hình ảnh được hiển thị trên trang web. Nhưng, nếu bạn không muốn tiêu thụ không gian của máy chủ, tệp chỉ có thể được lưu trữ trong cơ sở dữ liệu. Bạn có thể tải lên một hình ảnh mà không cần lưu trữ tệp vật lý trên máy chủ bằng cơ sở dữ liệu MySQL. Nó rất dễ dàng lưu trữ và truy xuất hình ảnh từ cơ sở dữ liệu bằng PHP và MySQL.

Nếu bạn lo lắng về không gian máy chủ và cần không gian trống trên máy chủ của mình, bạn có thể chèn tệp hình ảnh trực tiếp vào cơ sở dữ liệu mà không tải nó lên thư mục của máy chủ. Quy trình này giúp tối ưu hóa không gian máy chủ vì nội dung tệp hình ảnh được lưu trữ trong cơ sở dữ liệu thay vì máy chủ. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách lưu trữ các tệp hình ảnh vào cơ sở dữ liệu MySQL và truy xuất hình ảnh từ cơ sở dữ liệu bằng PHP.retrieve images from the database using PHP.

Trước khi bắt đầu tích hợp tải lên tệp với cơ sở dữ liệu, hãy xem cấu trúc tệp.

store_retrieve_image_from_database/
├── dbConfig.php
├── index.php
├── upload.php
├── view.php
└── css/
    └── style.css

Chèn tệp hình ảnh trong MySQL

MySQL có kiểu dữ liệu BLOB [đối tượng lớn nhị phân] có thể chứa một lượng lớn dữ liệu nhị phân. Kiểu dữ liệu Blob là hoàn hảo để lưu trữ dữ liệu hình ảnh trong cơ sở dữ liệu. Trong MySQL, bốn loại blob có sẵn - tinyblob, blob, trung bình và longblob. Kiểu dữ liệu Longblob là hoàn hảo để lưu trữ dữ liệu tệp hình ảnh.

Tạo bảng cơ sở dữ liệu

Để lưu trữ nội dung tệp, một bảng được yêu cầu trong cơ sở dữ liệu. SQL sau đây tạo bảng images với trường Kiểu dữ liệu LongBlob trong cơ sở dữ liệu MySQL.LONGBLOB data type field in the MySQL database.

CREATE TABLE `images` [
  `id` int[11] NOT NULL AUTO_INCREMENT,
  `image` longblob NOT NULL,
  `created` datetime NOT NULL DEFAULT current_timestamp[],
  PRIMARY KEY [`id`]
] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Cấu hình cơ sở dữ liệu [dbconfig.php]

Tệp dbConfig.php được sử dụng để kết nối và chọn cơ sở dữ liệu. Chỉ định máy chủ cơ sở dữ liệu [$dbHost], tên người dùng [$dbUsername], mật khẩu [____10] và tên [

CREATE TABLE `images` [
  `id` int[11] NOT NULL AUTO_INCREMENT,
  `image` longblob NOT NULL,
  `created` datetime NOT NULL DEFAULT current_timestamp[],
  PRIMARY KEY [`id`]
] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
1] theo thông tin xác thực cơ sở dữ liệu MySQL của bạn.

Truy xuất hình ảnh từ cơ sở dữ liệu [View.php]

Trong tệp

CREATE TABLE `images` [
  `id` int[11] NOT NULL AUTO_INCREMENT,
  `image` longblob NOT NULL,
  `created` datetime NOT NULL DEFAULT current_timestamp[],
  PRIMARY KEY [`id`]
] ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
3, chúng tôi sẽ truy xuất nội dung hình ảnh từ cơ sở dữ liệu MySQL và liệt kê chúng trên trang web.

  • Các tham số Dữ liệu, Charset và Base64 trong thuộc tính SRC, được sử dụng để hiển thị Blob hình ảnh từ cơ sở dữ liệu MySQL.display image BLOB from MySQL database.


 
    
        
            

Bài Viết Liên Quan

Chủ Đề