为什么图像在表格中显示为空?

问题描述 投票:0回答:1

所以我试图在 mysql 表中显示图像,即使我尝试更改图像和路径它仍然没有显示,即使我的朋友尝试使用不同的图像和路径但仍然显示为空

CREATE DATABASE restaurant;
USE restaurant;

CREATE TABLE item (
    item_id INT AUTO_INCREMENT,
    item_name VARCHAR(50) NOT NULL,
    item_price DECIMAL(9 , 2 ),
    item_type VARCHAR(50),
    item_calorie INT,
    item_image longBLOB,
    PRIMARY KEY (item_id)
);
INSERT INTO item (item_name, item_price, item_type, item_calorie, item_image)
VALUES ('steak', 3500.00, 'food', 500, LOAD_FILE('D:\\dice.jpg')),
       ('tea', 4000.00, 'drink', 200, LOAD_FILE('D:\\ronaldo2.jpg')),
       ('noodles', 2500.00, 'food', 450, LOAD_FILE('D:\\ronaldo2.jpg')),
       ('chicken', 5500.00, 'food', 600, LOAD_FILE('D:\\ronaldo2.jpg')),
       ('tart', 700.00, 'food', 150, LOAD_FILE('D:\\ronaldo2.jpg'));
mysql
1个回答
0
投票

最简单的解释是

load_file
没有加载文件。这可能是因为没有找到它。它没有找到它,因为
load_file
在服务器上运行
。来自文档

要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有 FILE 权限。该文件必须可由服务器读取,并且其大小小于 max_allowed_packet 字节。如果 secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。

正如 Barmar 建议的那样,使用简单的

SELECT LOAD_FILE('D:\\dice.jpg')
进行调试。

相反,请使用

load data
和本地选项。

请注意,将文件存储在数据库中效率很低。它们占用大量空间,并且消耗大量以前的数据库服务器资源。相反,存储文件的路径。

例如,想要提供文件的 Web 应用程序。如果文件位于数据库中,则必须查询该文件、从数据库检索该文件、存储该文件,然后提供其副本。如果您只存储路径,它会查询文件的路径并直接提供本地文件。

© www.soinside.com 2019 - 2024. All rights reserved.