Hướng dẫn datatype to store image in mysql database - datatype để lưu trữ hình ảnh trong cơ sở dữ liệu mysql

Tác giả đã chọn các cô gái viết mã để nhận quyên góp như một phần của chương trình Write for quyên góp.

Giới thiệu

Một đối tượng lớn nhị phân (

Output

Query OK, 1 row affected (0.01 sec)
7) 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à các tệp PDF.

Khi tạo các ứng dụng yêu cầu cơ sở dữ liệu kết hợp chặt chẽ, trong đó hình ảnh nên đồng bộ với dữ liệu liên quan (ví dụ: cổng thông tin nhân viên, cơ sở dữ liệu sinh viên hoặc ứng dụng tài chính), bạn có thể thấy thuận tiện để lưu trữ hình ảnh như hộ chiếu của sinh viên Ảnh và chữ ký trong cơ sở dữ liệu MySQL cùng với các thông tin liên quan khác.

Đây là nơi loại dữ liệu MySQL

Output

Query OK, 1 row affected (0.01 sec)
7 xuất hiện. Cách tiếp cận lập trình này giúp loại bỏ sự cần thiết phải tạo một hệ thống tệp riêng biệt để lưu trữ hình ảnh. Sơ đồ cũng tập trung vào cơ sở dữ liệu, làm cho nó di động và an toàn hơn vì dữ liệu được cách ly với hệ thống tệp. Tạo bản sao lưu cũng liền mạch hơn vì bạn có thể tạo một tệp kết xuất MySQL duy nhất chứa tất cả dữ liệu của bạn.

Lấy dữ liệu nhanh hơn và khi tạo hồ sơ, bạn có thể chắc chắn rằng các quy tắc xác thực dữ liệu và tính toàn vẹn tham chiếu được duy trì đặc biệt là khi sử dụng các giao dịch MYSQL.

Trong hướng dẫn này, bạn sẽ sử dụng kiểu dữ liệu MySQL

Output

Query OK, 1 row affected (0.01 sec)
7 để lưu trữ hình ảnh với PHP trên Ubuntu 18.04.

Điều kiện tiên quyết

Để làm theo với hướng dẫn này, bạn sẽ cần những điều sau:

  • Máy chủ Ubuntu 18.04 được cấu hình bằng cách sử dụng thiết lập máy chủ ban đầu với Ubuntu 18.04 và người dùng không root với các đặc quyền
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    0.
  • Apache, MySQL và PHP được thiết lập bằng cách làm theo hướng dẫn về cách cài đặt xếp chồng Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 18.04. Đối với hướng dẫn này, không cần thiết phải tạo máy chủ ảo, vì vậy bạn có thể bỏ qua Bước 4.

Bước 1 - Tạo cơ sở dữ liệu

Bạn sẽ bắt đầu bằng cách tạo một cơ sở dữ liệu mẫu cho dự án của bạn. Để thực hiện việc này, SSH vào máy chủ của bạn và sau đó chạy lệnh sau để đăng nhập vào máy chủ MySQL của bạn dưới dạng root:

  1. sudo mysql -u root -p

Nhập mật khẩu gốc của cơ sở dữ liệu MySQL của bạn và nhấn

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
1 để tiếp tục.

Sau đó, chạy lệnh sau để tạo cơ sở dữ liệu. Trong hướng dẫn này, chúng tôi sẽ đặt tên cho nó

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2:

  1. CREATE DATABASE test_company;

Khi cơ sở dữ liệu được tạo, bạn sẽ thấy đầu ra sau:

Output

Query OK, 1 row affected (0.01 sec)

Tiếp theo, tạo tài khoản

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 trên máy chủ MySQL và nhớ thay thế
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
4 bằng mật khẩu mạnh:

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';

Bạn sẽ thấy đầu ra sau:

Output

Query OK, 0 rows affected (0.01 sec)

Để cấp

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 Đặc quyền đầy đủ trên cơ sở dữ liệu
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2, chạy:

  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';

Đảm bảo bạn nhận được đầu ra sau:

Output

Query OK, 0 rows affected (0.01 sec)

Cuối cùng, hãy xóa bảng đặc quyền để MySQL tải lại quyền:

  1. FLUSH PRIVILEGES;

Đảm bảo bạn thấy đầu ra sau:

Output

Query OK, 0 rows affected (0.01 sec)

Bây giờ, cơ sở dữ liệu

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2 và
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 đã sẵn sàng, bạn sẽ chuyển sang tạo bảng
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9 để lưu trữ các sản phẩm mẫu. Bạn sẽ sử dụng bảng này sau để chèn và truy xuất các bản ghi để chứng minh cách hoạt động của MySQL

Output

Query OK, 1 row affected (0.01 sec)
7.

Đăng xuất từ ​​máy chủ MySQL:

  1. QUIT;

Sau đó, đăng nhập lại với thông tin đăng nhập của

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 mà bạn đã tạo:

  1. CREATE DATABASE test_company;
0

Khi được nhắc, hãy nhập mật khẩu cho

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 và nhấn
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
1 để tiếp tục. Tiếp theo, chuyển sang cơ sở dữ liệu
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2 bằng cách nhập các mục sau:

  1. CREATE DATABASE test_company;
1

Khi cơ sở dữ liệu

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2 được chọn, MySQL sẽ hiển thị:

  1. CREATE DATABASE test_company;
2

Tiếp theo, tạo bảng

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9 bằng cách chạy:

  1. CREATE DATABASE test_company;
3

Lệnh này tạo ra một bảng có tên

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9. Bảng có bốn cột:

  • Output

    Query OK, 0 rows affected (0.01 sec)
    8: Cột này sử dụng kiểu dữ liệu

    Output

    Query OK, 0 rows affected (0.01 sec)
    9 để chứa một danh sách lớn các sản phẩm lên đến tối đa 2⁶³-1. Bạn đã đánh dấu cột là
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    0 để xác định duy nhất các sản phẩm. Để MySQL xử lý việc tạo các định danh mới cho các cột được chèn, bạn đã sử dụng từ khóa
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    1.

    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    2: Cột này giữ tên của các sản phẩm. Bạn đã sử dụng kiểu dữ liệu
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    3 vì trường này thường sẽ xử lý các chữ số lên đến tối đa
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    4 ký tự. Giới hạn của
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    4 chỉ là một giá trị giả thuyết được sử dụng cho mục đích của hướng dẫn này.

    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    6: Đối với mục đích trình diễn, bảng
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    9 của bạn chứa cột
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    6 để lưu trữ giá bán lẻ của sản phẩm. Vì một số sản phẩm có thể có giá trị nổi (ví dụ: 23,69, 45,36, 102,99), nên bạn đã sử dụng loại dữ liệu
    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    9.

  • Output

    Query OK, 0 rows affected (0.01 sec)
    0: Cột này sử dụng kiểu dữ liệu

    Output

    Query OK, 1 row affected (0.01 sec)
    7 để lưu trữ dữ liệu nhị phân thực tế của hình ảnh sản phẩm.

Bạn đã sử dụng bộ nhớ

Output

Query OK, 0 rows affected (0.01 sec)
2

Output

Query OK, 0 rows affected (0.01 sec)
3 cho bảng để hỗ trợ một loạt các tính năng bao gồm các giao dịch MYSQL. Sau khi thực hiện điều này để tạo bảng
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9, bạn sẽ thấy đầu ra sau:

  1. CREATE DATABASE test_company;
4

Đăng xuất từ ​​máy chủ MySQL của bạn:

  1. QUIT;

Bạn sẽ nhận được đầu ra sau

  1. CREATE DATABASE test_company;
6

Bảng

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9 hiện đã sẵn sàng để lưu trữ một số hồ sơ bao gồm các sản phẩm hình ảnh và bạn sẽ điền nó với một số sản phẩm trong bước tiếp theo.

Bước 2 - Tạo tập lệnh PHP để kết nối và điền vào cơ sở dữ liệu

Trong bước này, bạn sẽ tạo một tập lệnh PHP sẽ kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo trong bước 1. Tập lệnh sẽ chuẩn bị ba sản phẩm mẫu và chèn chúng vào bảng

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9.

Để tạo mã PHP, hãy mở một tệp mới với trình soạn thảo văn bản của bạn:

  1. CREATE DATABASE test_company;
7

Sau đó, nhập thông tin sau vào tệp và thay thế

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
4 bằng mật khẩu
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3 mà bạn đã tạo trong bước 1:

/var/www/html/config.php

  1. CREATE DATABASE test_company;
8

Lưu và đóng tập tin.

Trong tệp này, bạn đã sử dụng bốn hằng số PHP để kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo trong bước 1:

  • Output

    Query OK, 0 rows affected (0.01 sec)
    9: Hằng số này giữ tên của cơ sở dữ liệu
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    2.

    1. FLUSH PRIVILEGES;
    1: Biến này giữ tên người dùng
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    3.

    1. FLUSH PRIVILEGES;
    3: Hằng số này lưu trữ MySQL
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    4 của tài khoản
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    3.

    1. FLUSH PRIVILEGES;
    6: Điều này thể hiện máy chủ nơi cơ sở dữ liệu cư trú. Trong trường hợp này, bạn đang sử dụng máy chủ
    1. FLUSH PRIVILEGES;
    7.

Dòng sau trong tệp của bạn bắt đầu đối tượng dữ liệu PHP (PDO) và kết nối với cơ sở dữ liệu MySQL:

  1. CREATE DATABASE test_company;
9

Đến cuối tệp, bạn đã đặt một vài thuộc tính PDO:

    1. FLUSH PRIVILEGES;
    8: Thuộc tính này hướng dẫn PDO ném một ngoại lệ có thể được ghi lại cho mục đích gỡ lỗi.
    1. FLUSH PRIVILEGES;
    9: Tùy chọn này tăng bảo mật bằng cách nói với công cụ cơ sở dữ liệu MySQL thực hiện chuẩn bị thay vì PDO.

Bạn sẽ bao gồm tệp

Output

Query OK, 0 rows affected (0.01 sec)
0 trong hai tập lệnh PHP mà bạn sẽ tạo tiếp theo để chèn và truy xuất các bản ghi tương ứng.

Đầu tiên, hãy tạo tập lệnh PHP

Output

Query OK, 0 rows affected (0.01 sec)
1 để chèn các bản ghi vào bảng sản phẩm:

Output

Query OK, 1 row affected (0.01 sec)
0

Sau đó, thêm thông tin sau vào tệp

Output

Query OK, 0 rows affected (0.01 sec)
1:

/var/www/html/insert_products.php

Output

Query OK, 1 row affected (0.01 sec)
1

Lưu và đóng tập tin.

Trong tệp này, bạn đã sử dụng bốn hằng số PHP để kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo trong bước 1:

Output

Query OK, 0 rows affected (0.01 sec)
9: Hằng số này giữ tên của cơ sở dữ liệu
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2.

  1. FLUSH PRIVILEGES;
1: Biến này giữ tên người dùng
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3.

  1. FLUSH PRIVILEGES;
3: Hằng số này lưu trữ MySQL
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
4 của tài khoản
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3.

Output

Query OK, 1 row affected (0.01 sec)
2

  1. FLUSH PRIVILEGES;
6: Điều này thể hiện máy chủ nơi cơ sở dữ liệu cư trú. Trong trường hợp này, bạn đang sử dụng máy chủ
  1. FLUSH PRIVILEGES;
7.

Hướng dẫn datatype to store image in mysql database - datatype để lưu trữ hình ảnh trong cơ sở dữ liệu mysql

Dòng sau trong tệp của bạn bắt đầu đối tượng dữ liệu PHP (PDO) và kết nối với cơ sở dữ liệu MySQL:

Đến cuối tệp, bạn đã đặt một vài thuộc tính PDO:

  1. FLUSH PRIVILEGES;
8: Thuộc tính này hướng dẫn PDO ném một ngoại lệ có thể được ghi lại cho mục đích gỡ lỗi.

  1. FLUSH PRIVILEGES;
9: Tùy chọn này tăng bảo mật bằng cách nói với công cụ cơ sở dữ liệu MySQL thực hiện chuẩn bị thay vì PDO.

Output

Query OK, 1 row affected (0.01 sec)
3

Bạn sẽ bao gồm tệp

Output

Query OK, 0 rows affected (0.01 sec)
0 trong hai tập lệnh PHP mà bạn sẽ tạo tiếp theo để chèn và truy xuất các bản ghi tương ứng.

Đầu tiên, hãy tạo tập lệnh PHP

Output

Query OK, 0 rows affected (0.01 sec)
1 để chèn các bản ghi vào bảng sản phẩm:

Output

Query OK, 1 row affected (0.01 sec)
4

Sau đó, thêm thông tin sau vào tệp

Output

Query OK, 0 rows affected (0.01 sec)
1:

Trong tệp, bạn đã bao gồm tệp

Output

Query OK, 0 rows affected (0.01 sec)
3 ở đầu. Đây là tệp đầu tiên bạn tạo để xác định các biến cơ sở dữ liệu và kết nối với cơ sở dữ liệu. Tệp cũng khởi tạo một đối tượng PDO và lưu trữ nó trong biến

Output

Query OK, 0 rows affected (0.01 sec)
4.

Tiếp theo, bạn đã tạo ra một mảng dữ liệu của sản phẩm sẽ được đưa vào cơ sở dữ liệu. Ngoài

  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
2 và
  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
6, được điều chế như các chuỗi và giá trị số tương ứng, tập lệnh sử dụng chức năng

Output

Query OK, 0 rows affected (0.01 sec)
7 của Php, để đọc hình ảnh từ nguồn bên ngoài và chuyển chúng dưới dạng chuỗi đến cột

Output

Query OK, 0 rows affected (0.01 sec)
0.

Tiếp theo, bạn đã chuẩn bị một câu lệnh SQL và sử dụng câu lệnh PHP

Output

Query OK, 0 rows affected (0.01 sec)
9 để chèn từng sản phẩm vào cơ sở dữ liệu.

Để thực thi tệp

Output

Query OK, 0 rows affected (0.01 sec)
1, hãy chạy nó trong cửa sổ trình duyệt của bạn bằng URL sau. Hãy nhớ thay thế
  1. QUIT;
1 bằng địa chỉ IP công khai của máy chủ của bạn:

Output

Query OK, 1 row affected (0.01 sec)
5

Sau khi thực hiện tệp, bạn sẽ thấy một thông báo thành công trong trình duyệt của bạn xác nhận các bản ghi đã được đưa vào cơ sở dữ liệu.

Tiếp theo, thực thi tệp

  1. CREATE DATABASE test_company;
11 trong trình duyệt web bằng cách nhập địa chỉ sau:

Output

Query OK, 1 row affected (0.01 sec)
6

Sau khi chạy tệp

  1. CREATE DATABASE test_company;
11 trong trình duyệt của bạn, bạn sẽ thấy bảng HTML với danh sách các sản phẩm và hình ảnh liên quan.

Hướng dẫn datatype to store image in mysql database - datatype để lưu trữ hình ảnh trong cơ sở dữ liệu mysql

Điều này xác nhận rằng tập lệnh PHP để truy xuất hình ảnh từ MySQL đang hoạt động như mong đợi.

Sự kết luận

Trong hướng dẫn này, bạn đã sử dụng kiểu dữ liệu MySQL

Output

Query OK, 1 row affected (0.01 sec)
7 để lưu trữ và hiển thị hình ảnh với PHP trên Ubuntu 18.04. Bạn cũng đã thấy những lợi thế cơ bản của việc lưu trữ hình ảnh trong cơ sở dữ liệu trái ngược với việc lưu trữ chúng trong một hệ thống tệp. Chúng bao gồm tính di động, bảo mật và dễ dàng sao lưu. Nếu bạn đang xây dựng một ứng dụng như sinh viên Cổng thông tin hoặc cơ sở dữ liệu của nhân viên, yêu cầu thông tin và hình ảnh liên quan được lưu trữ cùng nhau, thì công nghệ này có thể được sử dụng rất nhiều cho bạn.

Để biết thêm thông tin về các loại dữ liệu được hỗ trợ trong MySQL, hãy làm theo hướng dẫn kiểu dữ liệu MySQL. Nếu bạn quan tâm đến nội dung tiếp theo liên quan đến MySQL và PHP, hãy xem các hướng dẫn sau:

  • Cách thực hiện phân trang trong MySQL với PHP trên Ubuntu 18.04
  • Cách sử dụng tiện ích mở rộng PDO PHP để thực hiện các giao dịch MYSQL trong PHP trên Ubuntu 18.04

Kiểu dữ liệu nào được sử dụng để lưu trữ hình ảnh trong MySQL?

Giới thiệu.Đố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à các tệp PDF.Binary Large Object ( BLOB ) is a MySQL data type that can store binary data such as images, multimedia, and PDF files.

Làm thế nào chúng ta có thể lưu trữ hình ảnh trong cơ sở dữ liệu MySQL?

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.....
Tạo bảng cơ sở dữ liệu.....
Cấu hình cơ sở dữ liệu (dbconfig.php) ....
Hình ảnh tải lên mẫu.....
Lưu trữ tệp hình ảnh trong cơ sở dữ liệu (tải lên. ....
Truy xuất hình ảnh từ cơ sở dữ liệu (Xem. ....
Conclusion..

Kiểu dữ liệu nào được sử dụng cho hình ảnh trong SQL?

Kiểu dữ liệu hình ảnh trong SQL Server đã được sử dụng để lưu trữ các tệp hình ảnh.Gần đây, Microsoft bắt đầu đề xuất sử dụng Varbinary (MAX) thay vì hình ảnh để lưu trữ một lượng lớn dữ liệu trong một cột duy nhất vì hình ảnh sẽ được nghỉ hưu trong phiên bản tương lai của MS SQL Server.VARBINARY(MAX) instead of IMAGE for storing a large amount of data in a single column since IMAGE will be retired in a future version of MS SQL Server.

Kiểu dữ liệu của hình ảnh trong cơ sở dữ liệu là gì?

Hình ảnh là một loại dữ liệu có độ dài thay đổi có thể lưu trữ dữ liệu nhị phân.Hình ảnh có thể chứa tới 2GB dữ liệu.variable-length data type that can store binary data. IMAGE can hold up to 2GB of data.