如何为每个用户在我的表中放置默认图像?

时间:2012-08-16 08:45:19

标签: php mysql html

我正在使用PHP和MYSQL,并希望添加一项功能来上传个人资料图片。如果用户没有上传他的图片,我想显示默认图像。我已将数据库的配置文件图像字段声明为BLOB。在这种情况下,我没有选择直接通过数据库放置默认图像。请帮忙 !!

3 个答案:

答案 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
}