Hướng dẫn file to blob php - tập tin vào blob php

Thứ ba, 05/05/2020 | 00:00 GMT+7

BLOB là kiểu dữ liệu MySQL có thể lưu trữ dữ liệu binary như hình ảnh, file đa phương tiện và file PDF.


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

Đây là nơi xuất hiện kiểu dữ liệu MySQL

7 . Phương pháp lập trình này loại bỏ nhu cầu tạo một hệ thống file riêng để lưu trữ hình ảnh. Lược đồ cũng tập trung hóa database , làm cho nó dễ di động và an toàn hơn vì dữ liệu được tách biệt khỏi hệ thống file . Tạo bản backup cũng liền mạch hơn vì bạn có thể tạo một file kết xuất MySQL duy nhất chứa tất cả dữ liệu .

Truy xuất dữ liệu nhanh hơn và khi tạo bản ghi, bạn có thể chắc chắn rằng các-luật xác thực dữ liệu và tính toàn vẹn tham chiếu được duy trì, đặc biệt 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

7 để lưu trữ hình ảnh bằng PHP trên Ubuntu 18.04.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần các thành phần sau:

  • Server Ubuntu 18.04 được cấu hình bằng Cài đặt server ban đầu với Ubuntu 18.04 và user không phải root có quyền
    9 .
  • Apache, MySQL và PHP được cài đặt theo hướng dẫn về Cách cài đặt 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 VirtualHost, vì vậy bạn có thể bỏ qua Bước 4.

Bước 1 - Tạo database

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

  • sudo mysql -u root -p

Nhập password root của database MySQL của bạn và nhấn

Query OK, 1 row affected (0.01 sec) 
0 để tiếp tục.

Sau đó, chạy lệnh sau để tạo database . Trong hướng dẫn này, ta sẽ đặt tên là

Query OK, 1 row affected (0.01 sec) 
1 :
  • CREATE DATABASE test_company;test_company;test_company;

Khi database được tạo, bạn sẽ thấy kết quả sau:

Output

Query OK, 1 row affected (0.01 sec) 

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:
  • CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_user'@'localhost' IDENTIFIED BY 'PASSWORD';

Bạn sẽ thấy kết quả sau:

Output

6

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:
  • CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_company.* TO 'test_user'@'localhost';

Output

6

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:
  • CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_user'@'localhost' IDENTIFIED BY 'PASSWORD';

Output

7

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:

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

  • QUIT;
  • Bạn sẽ thấy kết quả sau:test_user -p

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_company.* TO 'test_user'@'localhost';

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
  • Query OK, 1 row affected (0.01 sec) 
    2 trên server MySQL và nhớ thay thế
    Query OK, 1 row affected (0.01 sec) 
    3 bằng một password mạnh:test_company;

Bạn sẽ thấy kết quả sau:test_user -p

Output

5

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:
  • CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
  • Bạn sẽ thấy kết quả sau:

  • CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_company.* TO 'test_user'@'localhost';

    CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
  • Query OK, 1 row affected (0.01 sec) 
    2 trên server MySQL và nhớ thay thế
    Query OK, 1 row affected (0.01 sec) 
    3 bằng một password mạnh:

  • Bạn sẽ thấy kết quả sau:test_user -p

Để cấp cho

Output

9

Tiếp theo, tạo account

  • QUIT;

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:

Output

3

Tiếp theo, tạo account

Query OK, 1 row affected (0.01 sec) 
2 trên server MySQL và nhớ thay thế
Query OK, 1 row affected (0.01 sec) 
3 bằng một password mạnh:

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

Bạn sẽ thấy kết quả sau:

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';test_company.* TO 'test_user'@'localhost';

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

  • Query OK, 1 row affected (0.01 sec) 
    2 trên server MySQL và nhớ thay thế
    Query OK, 1 row affected (0.01 sec) 
    3 bằng một password mạnh:

Bạn sẽ thấy kết quả sau:test_user -p

Để cấp cho

/var/www/html/config.php

6

Lưu file .

Trong file này, bạn đã sử dụng bốn hằng số PHP để kết nối với database MySQL mà bạn đã tạo ở Bước 1:

  • 8 : Hằng số này giữ tên của database
    Query OK, 1 row affected (0.01 sec) 
    1 .
  • 60 : Biến này chứa tên user
    Query OK, 1 row affected (0.01 sec) 
    2 .
  • 62 : Hằng số này lưu trữ
    Query OK, 1 row affected (0.01 sec) 
    3 MySQL của account
    Query OK, 1 row affected (0.01 sec) 
    2 .
  • 65 :  server nơi chứa database . Trong trường hợp này, bạn đang sử dụng server
    66 .

Dòng sau trong file khởi tạo Đối tượng dữ liệu PHP (PDO) và kết nối với database MySQL:

7

Ở cuối file , bạn đã đặt một số thuộc tính PDO:

  • 67 : Thuộc tính này hướng dẫn PDO xuất một ngoại lệ có thể được ghi lại cho mục đích gỡ lỗi.
  • 68 : Tùy chọn này tăng tính bảo mật bằng cách yêu cầu công cụ database MySQL thực hiện chuẩn bị thay vì PDO.

Sẽ bao gồm file

69 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

00 để chèn các bản ghi vào bảng sản phẩm:
  • sudo nano /var/www/html/insert_products.php

Sau đó, thêm thông tin sau vào file

00 :

/var/www/html/insert_products.php

0

Lưu file .

Trong file này, bạn đã sử dụng bốn hằng số PHP để kết nối với database MySQL mà bạn đã tạo ở Bước 1:

8 : Hằng số này giữ tên của database
Query OK, 1 row affected (0.01 sec) 
1 .
60 : Biến này chứa tên user
Query OK, 1 row affected (0.01 sec) 
2 .
62 : Hằng số này lưu trữ
Query OK, 1 row affected (0.01 sec) 
3 MySQL của account
Query OK, 1 row affected (0.01 sec) 
2 .
1
65 :  server nơi chứa database . Trong trường hợp này, bạn đang sử dụng server
66 .

Dòng sau trong file khởi tạo Đối tượng dữ liệu PHP (PDO) và kết nối với database MySQL:

Ở cuối file , bạn đã đặt một số thuộc tính PDO:

67 : Thuộc tính này hướng dẫn PDO xuất một ngoại lệ có thể được ghi lại cho mục đích gỡ lỗi.
68 : Tùy chọn này tăng tính bảo mật bằng cách yêu cầu công cụ database MySQL thực hiện chuẩn bị thay vì PDO.
  • Sẽ bao gồm file
    69 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

00 để chèn các bản ghi vào bảng sản phẩm:

sudo nano /var/www/html/insert_products.php

4

Sau đó, thêm thông tin sau vào file

00 :

/var/www/html/insert_products.php

Trong file , bạn đã bao gồm file

02 ở trên cùng. Đây là file đầu tiên bạn tạo để xác định các biến database và kết nối với database . Tệp cũng khởi tạo một đối tượng PDO và lưu trữ nó trong một biến
03 .

Tiếp theo, bạn đã tạo một mảng dữ liệu của các sản phẩm để chèn vào database . Ngoài

1 và
5 , được chuẩn bị dưới dạng chuỗi và giá trị số tương ứng, tập lệnh sử dụng hàm
06 được tích hợp sẵn 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 vào cột
9 .

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

08 để chèn từng sản phẩm vào database .
5

Để thực thi file

00 , hãy chạy nó trong cửa sổ trình duyệt của bạn bằng cách sử dụng URL sau. Hãy nhớ thay thế
10 công cộng của server:

Sau khi thực thi file , bạn sẽ thấy thông báo thành công trong trình duyệt xác nhận các bản ghi đã được chèn vào database .

6

Sau khi chạy file

31 trong trình duyệt, bạn sẽ thấy một bảng HTML với danh sách các sản phẩm và hình ảnh liên quan.

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

Kết luận

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

7 để lưu trữ và hiển thị hình ảnh bằng PHP trên Ubuntu 18.04. Bạn cũng đã thấy những ưu điểm cơ bản của việc lưu trữ hình ảnh trong database thay vì lưu trữ chúng trong hệ thống file . Chúng bao gồm tính di động, bảo mật và dễ dàng backup . Nếu bạn đang xây dựng một ứng dụng như cổng thông tin sinh viên hoặc database 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ể hữu ích cho bạn.

Để biết thêm thông tin về các kiểu 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 khác liên quan đến MySQL và PHP, hãy xem các hướng dẫn sau:

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

Tags:


Các tin liên quan

Cách đặt lại mật khẩu gốc MySQL hoặc MariaDB của bạn 2020-05-05 Cách cài đặt MySQL trên Ubuntu 18.04 2020-04-21 Cách cài đặt MySQL trên CentOS 8 2020-03-18 Cách triển khai phân trang trong MySQL với PHP trên Ubuntu 18.04 2020-01-29 Cách tối ưu hóa truy vấn MySQL với bộ đệm ProxySQL trên Ubuntu 16.04 2019-12-30 Cách cấu hình Cụm Galera với MySQL trên server Ubuntu 18.04 2019-12-16 Cách quản lý và sử dụng trình kích hoạt database MySQL trên Ubuntu 18.04 2019-12-10 Cách tạo một ứng dụng trích dẫn đầy cảm hứng bằng AdonisJs và MySQL 2019-11-22 Cách cài đặt MySQL mới nhất trên Debian 10 2019-07-25 Cách triển khai ứng dụng cốt lõi ASP.NET với server MySQL bằng Nginx trên Ubuntu 18.04 2019-07-23
2020-05-05
Cách cài đặt MySQL trên Ubuntu 18.04
2020-04-21
Cách cài đặt MySQL trên CentOS 8
2020-03-18
Cách triển khai phân trang trong MySQL với PHP trên Ubuntu 18.04
2020-01-29
Cách tối ưu hóa truy vấn MySQL với bộ đệm ProxySQL trên Ubuntu 16.04
2019-12-30
Cách cấu hình Cụm Galera với MySQL trên server Ubuntu 18.04
2019-12-16
Cách quản lý và sử dụng trình kích hoạt database MySQL trên Ubuntu 18.04
2019-12-10
Cách tạo một ứng dụng trích dẫn đầy cảm hứng bằng AdonisJs và MySQL
2019-11-22
Cách cài đặt MySQL mới nhất trên Debian 10
2019-07-25
Cách triển khai ứng dụng cốt lõi ASP.NET với server MySQL bằng Nginx trên Ubuntu 18.04
2019-07-23