2012-10-07 73 views
1

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

列定义:

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

我已经插入phpmyadmin的默认图像的URL,但每次我点击提交在web表单,在网页表单中的数据每个密钥存储在配置表,但图像列空。

我知道我可以通过在Web表单中添加图像URL来完成此操作,但是我想通过mysql来完成。

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

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

上述代码将不起作用。 profile_image列仍然是空的。

+0

我添加了列定义。谢谢。 – sg552

+2

谢谢,我让这个更突出,所以你的问题更好阅读。你也见过2)在@walther的回答中? – hakre

+0

是的,它的作品,但我如何使用/发送空值? – sg552

回答

4

你需要做两件事情:

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

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

+0

它现在的作品,但我怎么发送实际的空值?我更新了上面的问题。再次感谢。 – sg552

+0

@ sg552,你需要摆脱这些引号才能使它工作。查看这个解决问题的例子:http://stackoverflow.com/questions/6398820/how-do-you-send-null-as-a-variable-from-php-to-sql – walther