Hướng dẫn can we save images in mysql database? - chúng ta có thể lưu hình ảnh trong cơ sở dữ liệu mysql?

Các bản sao có thể: Hình ảnh trong MySQL lưu trữ hình ảnh trong MySQL
Images in MySQL
Storing images in MySQL

Tôi đang cố gắng phát triển một trang web nơi người dùng tải lên hình ảnh của họ như một phần của đăng ký. Tôi muốn nó cho mỗi hình ảnh, cần có một ngón tay cái được tạo bằng PHP (điều này không khó). Tôi muốn lưu các ngón tay cái (vì chúng rất nhỏ) trong cơ sở dữ liệu và tôi sử dụng MySQL. . Nếu nó không hỗ trợ dữ liệu hình ảnh, có bất kỳ cơ sở dữ liệu miễn phí nào không? Tôi sẽ rất vui nếu một liên kết có thể được cung cấp. Cảm ơn.
Does MySQL allow saving and retrieving image data and how do I go about it? If it doesn't support image data, is there any free database that does? I will be happy if a link can be provided.
Thanks.

Hướng dẫn can we save images in mysql database? - chúng ta có thể lưu hình ảnh trong cơ sở dữ liệu mysql?

hỏi ngày 24 tháng 6 năm 2011 lúc 18:32Jun 24, 2011 at 18:32

10

Có, bạn có thể lưu trữ hình ảnh trong cơ sở dữ liệu, nhưng theo ý kiến ​​của tôi không nên, và đó không phải là thông lệ chung.

Một thực tiễn chung là lưu trữ hình ảnh trong các thư mục trên hệ thống tệp và lưu trữ các tham chiếu đến các hình ảnh trong cơ sở dữ liệu. ví dụ. Đường dẫn đến hình ảnh, tên hình ảnh, v.v. hoặc cách khác, bạn thậm chí có thể lưu trữ hình ảnh trên mạng phân phối nội dung (CDN) hoặc nhiều máy chủ trên một số lãnh thổ vật lý rộng lớn và lưu trữ các tham chiếu để truy cập các tài nguyên đó trong cơ sở dữ liệu.

Hình ảnh có thể khá lớn, lớn hơn 1MB. Và do đó, lưu trữ hình ảnh trong cơ sở dữ liệu có khả năng đặt tải không cần thiết vào cơ sở dữ liệu của bạn và mạng giữa cơ sở dữ liệu và máy chủ web của bạn nếu chúng ở các máy chủ khác nhau.

Tôi đã làm việc tại các công ty khởi nghiệp, các công ty cỡ trung và các công ty công nghệ lớn với 400K+ nhân viên. Trong 13 năm kinh nghiệm chuyên nghiệp của tôi, tôi chưa bao giờ thấy ai lưu trữ hình ảnh trong cơ sở dữ liệu. Tôi nói điều này để hỗ trợ tuyên bố đó là một thực hành không phổ biến.

Đã trả lời ngày 24 tháng 6 năm 2011 lúc 18:35Jun 24, 2011 at 18:35

FinalFormFinalFormFinalForm

5.7465 Huy hiệu vàng20 Huy hiệu bạc38 Huy hiệu Đồng5 gold badges20 silver badges38 bronze badges

10

Bạn sẽ cần lưu dưới dạng blob, kiểu dữ liệu longblob trong MySQL sẽ hoạt động.

Ex:

CREATE TABLE 'test'.'pic' (
    'idpic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    'caption' VARCHAR(45) NOT NULL,
    'img' LONGBLOB NOT NULL,
  PRIMARY KEY ('idpic')
)

Như những người khác đã nói, đó là một thực hành tồi nhưng nó có thể được thực hiện. Không chắc chắn nếu mã này sẽ mở rộng quy mô tốt, mặc dù.

Đã trả lời ngày 24 tháng 6 năm 2011 lúc 18:37Jun 24, 2011 at 18:37

2

Bạn có thể lưu trữ hình ảnh trong MySQL dưới dạng Blobs. Tuy nhiên, điều này có vấn đề vì một vài lý do:

  • Các hình ảnh có thể khó thao tác hơn: Trước tiên bạn phải truy xuất chúng từ cơ sở dữ liệu trước khi có thể thực hiện hoạt động hàng loạt.
  • Ngoại trừ trong những trường hợp rất hiếm gặp trong đó toàn bộ cơ sở dữ liệu được lưu trữ trong RAM, cơ sở dữ liệu MySQL cuối cùng được lưu trữ trên đĩa. Điều này có nghĩa là hình ảnh DB của bạn được chuyển đổi thành Blobs, được chèn vào cơ sở dữ liệu và sau đó được lưu trữ trên đĩa; Bạn có thể tiết kiệm rất nhiều chi phí bằng cách lưu trữ chúng trên đĩa.

Thay vào đó, hãy xem xét cập nhật bảng của bạn để thêm trường Image_Path. Ví dụ:

ALTER TABLE `your_table`
ADD COLUMN `image_path` varchar(1024)

Sau đó lưu trữ hình ảnh của bạn trên đĩa và cập nhật bảng với đường dẫn hình ảnh. Khi bạn cần sử dụng hình ảnh, hãy truy xuất chúng từ đĩa bằng đường dẫn được chỉ định.

Một tác dụng phụ thuận lợi của phương pháp này là hình ảnh không nhất thiết phải được lưu trữ trên đĩa; Bạn có thể dễ dàng lưu trữ một URL thay vì đường dẫn hình ảnh và truy xuất hình ảnh từ bất kỳ vị trí kết nối Internet nào.

Đã trả lời ngày 24 tháng 6 năm 2011 lúc 18:35Jun 24, 2011 at 18:35

FinalFormFinalFormGeorge Cummins

5.7465 Huy hiệu vàng20 Huy hiệu bạc38 Huy hiệu Đồng8 gold badges69 silver badges90 bronze badges

6

Bạn sẽ cần lưu dưới dạng blob, kiểu dữ liệu longblob trong MySQL sẽ hoạt động.

Như những người khác đã nói, đó là một thực hành tồi nhưng nó có thể được thực hiện. Không chắc chắn nếu mã này sẽ mở rộng quy mô tốt, mặc dù.

Đã trả lời ngày 24 tháng 6 năm 2011 lúc 18:37

$data = file_get_contents($_FILES['photo']['tmp_name']);

Bạn có thể lưu trữ hình ảnh trong MySQL dưới dạng Blobs. Tuy nhiên, điều này có vấn đề vì một vài lý do:

Các hình ảnh có thể khó thao tác hơn: Trước tiên bạn phải truy xuất chúng từ cơ sở dữ liệu trước khi có thể thực hiện hoạt động hàng loạt.

Hướng dẫn can we save images in mysql database? - chúng ta có thể lưu hình ảnh trong cơ sở dữ liệu mysql?

Ngoại trừ trong những trường hợp rất hiếm gặp trong đó toàn bộ cơ sở dữ liệu được lưu trữ trong RAM, cơ sở dữ liệu MySQL cuối cùng được lưu trữ trên đĩa. Điều này có nghĩa là hình ảnh DB của bạn được chuyển đổi thành Blobs, được chèn vào cơ sở dữ liệu và sau đó được lưu trữ trên đĩa; Bạn có thể tiết kiệm rất nhiều chi phí bằng cách lưu trữ chúng trên đĩa.

Thay vào đó, hãy xem xét cập nhật bảng của bạn để thêm trường Image_Path. Ví dụ:25 gold badges118 silver badges208 bronze badges

Sau đó lưu trữ hình ảnh của bạn trên đĩa và cập nhật bảng với đường dẫn hình ảnh. Khi bạn cần sử dụng hình ảnh, hãy truy xuất chúng từ đĩa bằng đường dẫn được chỉ định.Jun 24, 2011 at 18:38

Một tác dụng phụ thuận lợi của phương pháp này là hình ảnh không nhất thiết phải được lưu trữ trên đĩa; Bạn có thể dễ dàng lưu trữ một URL thay vì đường dẫn hình ảnh và truy xuất hình ảnh từ bất kỳ vị trí kết nối Internet nào.bsimic

GEORGE CUMMINSEGRE CUMMINS7 silver badges15 bronze badges

1

Tôi có nên lưu hình ảnh trong mysql không?

Rấ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 quan tâm đến không gian máy chủ và cần không gian 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 tải nó lên thư mục của máy chủ.you can insert the image file directly in the database without uploading it to the directory of the server.

Cách tốt nhất để lưu trữ hình ảnh trong MySQL là gì?

Đừng lưu trữ hình ảnh của bạn trong một đốm màu hoặc bất cứ điều gì.Lưu các hình ảnh ở đâu đó trên đĩa, với một tham chiếu đến vị trí hình ảnh trong cơ sở dữ liệu.Bằng cách này, nó linh hoạt hơn rất nhiều và kích thước cơ sở dữ liệu của bạn vẫn còn nhỏ.(Giả sử rằng bạn đang sử dụng nó cho một trang web) Nó cũng nhanh hơn, vì nó làm giảm các yêu cầu cơ sở dữ liệu.Save the images somewhere on disk, with a reference to the image location in the database. This way it is a lot more flexible and your database size stays small. (Assuming that you're using it for a website) it is also faster, since it reduces database requests.

Chúng ta có thể lưu trữ hình ảnh trong cơ sở dữ liệu 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.

Cơ sở dữ liệu SQL có thể chứa hình ảnh không?

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.. Recently, Microsoft began suggesting using 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.