如何将图像插入数据库?

时间:2014-01-06 21:51:33

标签: php mysql image

我正在学习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'不能为空。

请帮忙。我正在失去理智......

2 个答案:

答案 0 :(得分:2)

问题不在于picidLOAD_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/