我正在学习mysql,并且在使用此代码构建图像数据库方面遇到了巨大的麻烦......
我知道如何创建一个表,我知道我需要longblob的图像。不是问题。目前我正在创建:CREATE TABLE pics
(
picid int unsigned not null auto_increment primary key,
filename varchar(255) not null unique,
caption varchar(255) not null,
pic longblob not null
);
picid中的“ not null ”给了我一些问题。因为接下来当我尝试使用此代码填充时:
INSERT INTO pics values
(
NULL,
'bear.jpg',
'a picture of a bear',
LOAD_FILE('C:/Users/USERS_NAME/Pictures/bear.jpg')
);
我遇到错误#1048 - 列'pic'不能为空。
请帮忙。我正在失去理智......
答案 0 :(得分:2)
问题不在于picid
。 LOAD_FILE('C:/Users/USERS_NAME/Pictures/bear.jpg')
很可能失败并返回NULL
。
更不用说,您不应该将图像存储在数据库中。图像是文件,应该在文件系统中存储。数据库应该在文件系统中保存元数据+文件的地址。
请参阅Effeciently storing user uploaded images on the file system以了解要遵循的良好系统。
答案 1 :(得分:0)
如果您仍想继续使用blob方法,请尝试本教程 http://forum.codecall.net/topic/40286-tutorial-storing-images-in-mysql-with-php/