Có hai cách để lưu hình ảnh. Cách phổ biến nhất là lưu tên tệp trong bảng MySQL và tải lên hình ảnh trong thư mục. Một cách khác là lưu trữ hình ảnh trực tiếp vào Cơ sở dữ liệu. Vì, Nhà phát triển thường không sử dụng phương pháp thứ hai, họ có thể bị nhầm lẫn
Sử dụng MySQL cho thông tin cơ sở dữ liệu chắc chắn là một lựa chọn rất tốt. Đôi khi để lưu hình ảnh hoặc tệp trong cơ sở dữ liệu hơn là trong một thư mục riêng sẽ thuận tiện hơn. Trong bài viết này, Bạn sẽ tìm hiểu cách lưu hình ảnh hoặc tệp vào cơ sở dữ liệu MySQL và cách hình ảnh cơ sở dữ liệu sẽ được hiển thị với ví dụ thực tế
Để lưu trữ tệp đã tải lên trong cơ sở dữ liệu là một phần phức tạp hơn so với việc chỉ di chuyển tệp bằng move_uploaded_file. vì vậy hôm nay chúng ta sẽ kiểm tra việc lưu trữ một tệp trong cơ sở dữ liệu. Cơ sở dữ liệu MySQL cung cấp kiểu dữ liệu chuyên dụng để lưu một lượng lớn dữ liệu và kiểu dữ liệu đó là BLOB
BLOB là gì?
Kiểu dữ liệu BLOB là một đối tượng lớn nhị phân có thể chứa độ dài dữ liệu thay đổi. BLOB thường được sử dụng để lưu trữ dữ liệu nhị phân và có bốn loại. ’
1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB
Sự khác biệt chính giữa tất cả các loại là độ dài của dữ liệu tương ứng có thể được lưu
Để lưu trữ tệp trong cơ sở dữ liệu hoặc trong MySQL, hãy tạo một bảng có kiểu dữ liệu BLOB nơi tệp có thể được lưu trữ bằng câu lệnh sau. Vì BLOB là viết tắt của Đối tượng lớn nhị phân và là phiên bản an toàn nhị phân của loại TEXT, điều đó có nghĩa là dữ liệu không phải là văn bản có thể đọc được và sẽ không được hiểu là văn bản có thể đọc được trong khi nó lưu trữ dữ liệu nhị phân nghiêm ngặt
Ở đây, tôi đang lưu trữ một hình ảnh trong cơ sở dữ liệu thay vì chỉ di chuyển tệp từ vị trí tạm thời sang thư mục cuối cùng để bạn sẽ đọc nội dung của nó và chèn nó vào cơ sở dữ liệu
GHI CHÚ. Các cột BLOB phân biệt chữ hoa chữ thường nếu bạn lưu trữ dữ liệu trong đó và sau đó thử tìm kiếm chúng bằng truy vấn MySQL
Thí dụ
Đây là Cấu trúc bảng có hai trường, Đầu tiên là id chính tự động tăng và trường thứ hai là Blob để lưu hình ảnh
1
2
3
4
5
6
TẠO TỆP BẢNG files [
id INT AUTO_INCREMENT PRIMARY KEY,
file_data MEDIUMBLOB KHÔNG NULL
];
Tiếp theo, Bạn cần một giao diện web để tải lên một hình ảnh. Để làm được điều đó, hãy tạo biểu mẫu HTML cho phép người dùng tải lên tệp mà bạn muốn lưu trữ trong cơ sở dữ liệu
1
2
3
4
5
6
Sau khi hình thành, tạo fileb. php tệp hiển thị cho bạn mã chính để lưu trữ tệp trong cơ sở dữ liệu. Ở đây hàm fread đọc nội dung tệp hoặc hình ảnh và lưu nội dung vào cơ sở dữ liệu MySQL bằng truy vấn MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Đây là tệp chúng tôi sẽ thêm nó vào cơ sở dữ liệu
$MY_FILE = $_FILES['file']['tmp_name'];
// Để mở tệp và lưu trữ nội dung của nó trong $file_contents
$tệp = fopen[$MY_FILE, 'r'];
$file_contents = sợ[$file, filesize[$MY_FILE]];
fđóng[$tệp];
/* Chúng tôi cần thoát khỏi một số ký tự có thể xuất hiện trong file_contents, vì vậy hãy làm điều đó ngay bây giờ trước khi chúng tôi bắt đầu truy vấn. */
$file_contents = addslashes[$file_contents];
// Để thêm tệp vào cơ sở dữ liệu
mysql_connect['localhost', 'root' . ", ''] or die["Unable to connect to database."];
mysql_select_db['kiểm tra'] hoặc die["Unable to select the DB."];
mysql_query["CHÈN VÀO tệp SET file_data='$file_contents'"] or die["MySQL Query Error: " . mysql_error[] . ". "SQL là. $SQL];
mysql_close[];
echo "Tệp được CHÈN vào bảng tệp thành công. ";
Đó là nó. Tôi đã hoàn thành với một lời giải thích. Nếu bạn gặp bất kỳ sự cố nào khi thiết lập mã này, hãy cho tôi biết qua nhận xét