-1

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

4

3 回答 3

3

在您的代码中处理它。无需将相同的图像复制到每个用户的数据库字段中。

if (!$user['image']) {
    // output default image
} else {
    // output $user['image']
}

实际上,您应该首先将图像存储在数据库之外。

于 2012-08-16T08:48:30.800 回答
2

与其存储相同的 blob 图像可能数千/数百万次,不如让您的 PHP 代码做一些检查 - 如果该字段为空,请将其指向文件系统上某个用于它们的文件。如果那里有数据,使用用户数据行中的图像。

在那一点上,您实际上不能为 blob 分配默认值。

但是,您可以这样做:在数据库中创建第二个表并将 blob 插入其中。然后在您正在使用的表上创建一个on insert触发器,插入完成后,使用如下内容:

UPDATE BLOB_table SET BLOB_field = (select defaultBlob from othertableName);

但话虽如此,浪费可能数百万行 blob 应该会让你畏缩。如果在行中找不到 blob,请检查您的 PHP 代码并指定一个默认值。

于 2012-08-16T08:47:07.840 回答
0

我的应用程序中有类似的功能。如果没有上传图片,我将重定向返回到默认图片:

if (mysql_num_rows($data) == 0) {
  header("Location: $default_image_url");
} else {
  // Code to output image
}
于 2012-08-16T08:50:49.493 回答