Hướng dẫn how to store png in mysql - cách lưu trữ png trong mysql

Tôi muốn biết cách lưu trữ hình ảnh và tệp trong cơ sở dữ liệu MySQL.

Tôi muốn lấy hình ảnh và tệp như thế

  1. CREATE DATABASE test_company;
8

Ví dụ trên Facebook: facebook-example.com/rsrc.php/v2/yw/r/svhhh826blkd.png

Hdjemai

9.18945 Huy hiệu vàng71 Huy hiệu bạc90 Huy hiệu Đồng45 gold badges71 silver badges90 bronze badges

Hỏi ngày 12 tháng 9 năm 2013 lúc 16:47Sep 12, 2013 at 16:47

2

Tạo một cột BLOB trong bảng cơ sở dữ liệu,

Có lẽ là trung bình.

Nhưng thật tốt khi giữ ảnh trong thư mục và giữ đường dẫn trong cơ sở dữ liệu. Chúc mừng

 CREATE TABLE tblname[ID INT,IMAGE BLOB];

INSERT INTO tblname[ID,IMAGE] VALUES[1,LOAD_FILE['C:/test.txt']];

Đã thêm câu trả lời từ các bình luận vào câu hỏi này trong hộp trả lời ..

Đã trả lời ngày 12 tháng 9 năm 2013 lúc 16:57Sep 12, 2013 at 16:57

5

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 [

  1. CREATE DATABASE test_company;
9] 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

  1. CREATE DATABASE test_company;
9 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

  1. CREATE DATABASE test_company;
9 để 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

    Output

    Query OK, 1 row affected [0.01 sec]
    2.
  • 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

Output

Query OK, 1 row affected [0.01 sec]
3 để 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ó

Output

Query OK, 1 row affected [0.01 sec]
4:

  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

Output

Query OK, 1 row affected [0.01 sec]
5 trên máy chủ MySQL và nhớ thay thế

Output

Query OK, 1 row affected [0.01 sec]
6 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

Output

Query OK, 1 row affected [0.01 sec]
5 Đặc quyền đầy đủ trên cơ sở dữ liệu

Output

Query OK, 1 row affected [0.01 sec]
4, 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

Output

Query OK, 1 row affected [0.01 sec]
4 và

Output

Query OK, 1 row affected [0.01 sec]
5 đã sẵn sàng, bạn sẽ chuyển sang tạo bảng
  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
1 để 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
  1. CREATE DATABASE test_company;
9.

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

  1. sudo mysql -u root -p
0

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

Output

Query OK, 1 row affected [0.01 sec]
5 mà bạn đã tạo:

  1. sudo mysql -u root -p
1

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

Output

Query OK, 1 row affected [0.01 sec]
5 và nhấn

Output

Query OK, 1 row affected [0.01 sec]
3 để tiếp tục. Tiếp theo, chuyển sang cơ sở dữ liệu

Output

Query OK, 1 row affected [0.01 sec]
4 bằng cách nhập các mục sau:

  1. sudo mysql -u root -p
2

Khi cơ sở dữ liệu

Output

Query OK, 1 row affected [0.01 sec]
4 được chọn, MySQL sẽ hiển thị:

  1. sudo mysql -u root -p
3

Tiếp theo, tạo bảng

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

  1. sudo mysql -u root -p
4

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

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

  • 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, 0 rows affected [0.01 sec]
    1 để 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à

    Output

    Query OK, 0 rows affected [0.01 sec]
    2 để 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

    Output

    Query OK, 0 rows affected [0.01 sec]
    3.

  • Output

    Query OK, 0 rows affected [0.01 sec]
    4: 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

    Output

    Query OK, 0 rows affected [0.01 sec]
    5 vì trường này thường sẽ xử lý các chữ số lên đến tối đa

    Output

    Query OK, 0 rows affected [0.01 sec]
    6 ký tự. Giới hạn của

    Output

    Query OK, 0 rows affected [0.01 sec]
    6 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.

  • Output

    Query OK, 0 rows affected [0.01 sec]
    8: Đối với mục đích trình diễn, bảng
    1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
    1 của bạn chứa cột

    Output

    Query OK, 0 rows affected [0.01 sec]
    8 để 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';
    1.

    1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
    2: Cột này sử dụng kiểu dữ liệu
    1. CREATE DATABASE test_company;
    9 để 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 lưu trữ

  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
4
  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
5 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';
1, bạn sẽ thấy đầu ra sau:

  1. sudo mysql -u root -p
5

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

  1. sudo mysql -u root -p
0

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

  1. sudo mysql -u root -p
7

Bảng

  1. CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'PASSWORD';
1 hiện đã sẵn sàng để lưu trữ một số bản ghi 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';
1.

Để 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. sudo mysql -u root -p
8

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

Output

Query OK, 1 row affected [0.01 sec]
6 bằng mật khẩu

Output

Query OK, 1 row affected [0.01 sec]
5 mà bạn đã tạo trong bước 1:

/var/www/html/config.php

  1. sudo mysql -u root -p
9

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]
    1: Hằng số này giữ tên của cơ sở dữ liệu

    Output

    Query OK, 1 row affected [0.01 sec]
    4.

  • Output

    Query OK, 0 rows affected [0.01 sec]
    3: Biến này giữ tên người dùng

    Output

    Query OK, 1 row affected [0.01 sec]
    5.

  • Output

    Query OK, 0 rows affected [0.01 sec]
    5: Hằng số này lưu trữ MySQL

    Output

    Query OK, 1 row affected [0.01 sec]
    6 của tài khoản

    Output

    Query OK, 1 row affected [0.01 sec]
    5.

  • Output

    Query OK, 0 rows affected [0.01 sec]
    8: Đ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ủ

    Output

    Query OK, 0 rows affected [0.01 sec]
    9.

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;
0

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

    1. FLUSH PRIVILEGES;
    0: 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;
    1: 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

  1. FLUSH PRIVILEGES;
2 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

  1. FLUSH PRIVILEGES;
3 để chèn các bản ghi vào bảng sản phẩm:

  1. CREATE DATABASE test_company;
1

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

  1. FLUSH PRIVILEGES;
3:

/var/www/html/insert_products.php

  1. CREATE DATABASE test_company;
2

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]
1: Hằng số này giữ tên của cơ sở dữ liệu

Output

Query OK, 1 row affected [0.01 sec]
4.

Output

Query OK, 0 rows affected [0.01 sec]
3: Biến này giữ tên người dùng

Output

Query OK, 1 row affected [0.01 sec]
5.

Output

Query OK, 0 rows affected [0.01 sec]
5: Hằng số này lưu trữ MySQL

Output

Query OK, 1 row affected [0.01 sec]
6 của tài khoản

Output

Query OK, 1 row affected [0.01 sec]
5.

  1. CREATE DATABASE test_company;
3

Output

Query OK, 0 rows affected [0.01 sec]
8: Đ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ủ

Output

Query OK, 0 rows affected [0.01 sec]
9.

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;
0: 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;
1: 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.

  1. CREATE DATABASE test_company;
4

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

  1. FLUSH PRIVILEGES;
2 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

  1. FLUSH PRIVILEGES;
3 để chèn các bản ghi vào bảng sản phẩm:

  1. CREATE DATABASE test_company;
5

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

  1. FLUSH PRIVILEGES;
3:

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

  1. FLUSH PRIVILEGES;
5 ở đầ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
  1. FLUSH PRIVILEGES;
6.

Tiếp theo, bạn đã tạo một bảng HTML và điền vào dữ liệu của sản phẩm bằng cách sử dụng câu lệnh PHP

Output

Query OK, 0 rows affected [0.01 sec]
8. Dòng

Output

Query OK, 0 rows affected [0.01 sec]
9 truy vấn cơ sở dữ liệu và lưu trữ kết quả trong biến
  1. sudo mysql -u root -p
00 dưới dạng mảng đa chiều, sau đó bạn đã hiển thị trong cột bảng HTML bằng cách sử dụng cú pháp
  1. sudo mysql -u root -p
01.

Các hình ảnh từ cột

  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
2 được đặt bên trong các thẻ ____10103. Bạn đã sử dụng các thuộc tính
  1. sudo mysql -u root -p
04 và
  1. sudo mysql -u root -p
05 để thay đổi kích thước hình ảnh thành một kích thước nhỏ hơn có thể vừa với cột bảng HTML.

Để chuyển đổi dữ liệu được giữ bởi kiểu dữ liệu

  1. CREATE DATABASE test_company;
9 thành hình ảnh, bạn đã sử dụng hàm PHP
  1. sudo mysql -u root -p
07 được xây dựng và cú pháp sau cho sơ đồ URI dữ liệu:

  1. CREATE DATABASE test_company;
6

Trong trường hợp này,

  1. sudo mysql -u root -p
08 là chuỗi được mã hóa
  1. sudo mysql -u root -p
09 và
  1. sudo mysql -u root -p
10 từ cột
  1. GRANT ALL PRIVILEGES ON test_company.* TO 'test_user'@'localhost';
2 là
  1. sudo mysql -u root -p
12.

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

  1. sudo mysql -u root -p
13 trong trình duyệt web bằng cách nhập địa chỉ sau:

  1. CREATE DATABASE test_company;
7

Sau khi chạy tệp

  1. sudo mysql -u root -p
13 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.

Đ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

  1. CREATE DATABASE test_company;
9 để 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

Tôi có thể lưu trữ 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à các tệp PDF..

Bạn có thể thêm hình ảnh vào MySQL không?

Bạn có thể thử mã dưới đây để chèn một hình ảnh: chèn vào các giá trị xx_blob [id, hình ảnh] [1, load_file ['e: /images/jack.jpg']];Nhảy bắt đầu sự nghiệp của bạn trong lĩnh vực SQL với khóa đào tạo SQL này ngày hôm nay!INSERT INTO xx_BLOB[ID,IMAGE] VALUES[1,LOAD_FILE['E:/Images/jack. jpg']]; Jump start your career in the field of SQL with this SQL Training course today!

Chúng ta có thể lưu trữ hình ảnh trong db không?

Một 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 bạn.Lưu trữ hình ảnh trong bảng cơ sở dữ liệu không được khuyến khích.. You can create such a database table for example when you want to create an online photo album with descriptions of your photos. Storing images in a database table is not recommended.

Loại dữ liệu nào phù hợp để lưu trữ hình ảnh trong MySQL?

Trong MySQL, loại dữ liệu ưa thích để lưu trữ hình ảnh là Blob.BLOB.

Bài Viết Liên Quan

Chủ Đề