1

我的数据库有一个带有图像列的配置文件表。如果用户没有在 Web 表单中插入他的图像 URL,我想使用默认值设置默认图像。

列定义:

profile_image varchar(255) NOT NULL DEFAULT 'http://i.imgur.com/U.png'

我已经在 phpmyadmin 中插入了默认图像 URL,但是每次单击 web 表单上的提交时,webform 中的每个数据键都存储在配置文件表中,但图像列是空的。

我知道我可以通过在 Web 表单中添加图像 URL 来使用表单执行此操作,但我想通过 mysql 执行此操作。

这个问题解决了,因为我在 php insert 中插入了图像,但是如何使用 null 值让 mysql 知道我正在发送 NULL?这是使用 Null 的正确方法吗?

$nl = NULL; 
$query = "INSERT INTO `student` (
`name` ,
`emel` ,
`address` ,
`profile_image` 
)
VALUES (
'$name', '$emel', '$add', '$nl');";

上面的代码不起作用。profile_image 列仍为空。

4

1 回答 1

4

你需要做两件事:

1.)为图像指定列的默认值,可能类似于default.jpg
(我相信你已经这样做了)

2.) 确保您的 php 脚本提供null value(非空)或don't specify the value at all在插入/修改期间,因此您的 mysql 知道它需要使用默认值。或者您可以处理 php 脚本中的逻辑以提供默认图像的 url。我会避免使用 SQL 中的一些复杂函数,因为您的逻辑可能会随着时间而改变,而 SQL 服务器确实不应该负责处理应用程序逻辑。

于 2012-10-07T08:24:58.603 回答