Cách lưu trữ url hình ảnh trong mysql

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

 

<biểu mẫu tên = "tệp" action="filedb.php" phương thức = "post" enctype="multipart/form-data">

   <đầu vào loại = "file" name="file" value="" />

   <đầu vào loại = "submit" name="Upload" value="Upload">

< / biểu mẫu>

 

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

Tôi có thể lưu trữ một hình ảnh trong MySQL không?

Đối tượng lớn nhị phân ( BLOB ) là loại dữ liệu MySQL có thể lưu trữ dữ liệu nhị phân như hình ảnh, đa phương tiện và tệp PDF .

Tôi có nên lưu trữ hình ảnh MySQL không?

Thậ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ề dung lượng máy chủ và cần dung lượng 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 cần tải nó lên thư mục của máy chủ.

Làm thế nào bạn sẽ lưu trữ hình ảnh trong cơ sở dữ liệu?

Cơ sở dữ liệu cho bạn cơ hội lưu trữ ảnh và các hình ảnh nhỏ khác trong bảng cơ sở dữ liệu. Bạn có thể tạo một bảng cơ sở dữ liệu như vậy chẳng hạn khi bạn muốn tạo một album ảnh trực tuyến với các mô tả về ảnh của mình. Không nên lưu trữ hình ảnh trong bảng cơ sở dữ liệu

Bạn có thể lưu trữ ảnh trong SQL không?

Kiểu dữ liệu IMAGE trong SQL Server đã được sử dụng để lưu trữ tệp hình ảnh . Gần đây, Microsoft đã bắt đầu đề xuất sử dụng VARBINARY(MAX) thay vì IMAGE để lưu trữ một lượng lớn dữ liệu trong một cột vì IMAGE sẽ bị gỡ bỏ trong phiên bản tương lai của MS SQL Server.