所以我试图在 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'));
最简单的解释是
load_file
没有加载文件。这可能是因为没有找到它。它没有找到它,因为 load_file
在服务器上运行。来自文档:
要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有 FILE 权限。该文件必须可由服务器读取,并且其大小小于 max_allowed_packet 字节。如果 secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。
正如 Barmar 建议的那样,使用简单的
SELECT LOAD_FILE('D:\\dice.jpg')
进行调试。
load data
和本地选项。
请注意,将文件存储在数据库中效率很低。它们占用大量空间,并且消耗大量以前的数据库服务器资源。相反,存储文件的路径。
例如,想要提供文件的 Web 应用程序。如果文件位于数据库中,则必须查询该文件、从数据库检索该文件、存储该文件,然后提供其副本。如果您只存储路径,它会查询文件的路径并直接提供本地文件。