我正在使用PHP和MYSQL,并希望添加一项功能来上传个人资料图片。如果用户没有上传他的图片,我想显示默认图像。我已将数据库的配置文件图像字段声明为BLOB。在这种情况下,我没有选择直接通过数据库放置默认图像。请帮忙 !!
答案 0 :(得分:3)
在代码中处理它。无需将相同的图像复制到每个用户的数据库字段中。
if (!$user['image']) {
// output default image
} else {
// output $user['image']
}
事实上,您应该首先将图像存储在数据库之外。
答案 1 :(得分:2)
不要将相同的blob映像存储成数千次/数百万次,而是让PHP代码稍微检查一下 - 如果该字段为空,则将其指向文件系统上用于它们的文件系统上的文件。如果中有数据,那么使用用户的数据行中的图像。
就此而言,您实际上CANNOT assign a default为blob值。
你可以但是这样做:在数据库中创建第二个表并将blob插入其中。然后在您正在使用的表上创建一个on insert
触发器,在插入完成后,使用以下内容:
UPDATE BLOB_table SET BLOB_field = (select defaultBlob from othertableName);
但话说回来,浪费数百万行斑点可能会让你感到畏缩。如果您在行中找不到blob,请检查您的PHP代码并指定默认值。
答案 2 :(得分:0)
我的应用程序中有类似的功能。如果没有上传图片,我会将重定向返回到默认图片:
if (mysql_num_rows($data) == 0) {
header("Location: $default_image_url");
} else {
// Code to output image
}