2011-09-18 78 views
0

我有一个表中有一个整数的数据类型的列。我想到的是,添加到该列中的值将为0 - N,或者只是空白,如空变量(请参见下文),但我不确定这是可能的吗?空白变量和INT列?

if($resource) { 
    $resource = $id - 2; 
} else { 
    $resource = ""; 
} 

$result = mysql_query("INSERT INTO table (...,resource,...) VALUES (...,'$resource',...)"); 

如果没有,我可以代替使用VARCHAR的数据类型,然后说:

if($resource) { 
    $resource = $id - 2; 
} else { 
    $resource = "INVALID"; 
} 

在这种情况下,是否有任何转换函数我不得不从提取值的时候做列resource,或数字会自动被视为整数?

回答

3

如果该字段应该是“白”以任何理由,我想你应该把它标记为可为空和使用单词NULL(不合法)

如果列是一个数字,从未使用VARCHAR,你将失去很多东西(也,一个int是不是一个varchar小)

编辑1:代码段,以允许在列空值:

ALTER TABLE mytable MODIFY mycolumn INT; 

如果您特异性Ÿ它:

ALTER TABLE mytable MODIFY mycolumn INT NOT NULL; 

这将是不能为空,所以应该是默认为空的,如果你不声明不同的是

编辑2:重要提示,列切不可UNIQUE否则该值将不能为空!

+0

因此,我仍然可以将列设置为“INT”,但使用NULL来代替'“”'或'“INVALID'? – Avicinnian

+1

是的,但您必须将数据库列设置为空。也被引用(是一个特殊的值)。我忘了,默认情况下,列可以为空,你只需要避免将它设置为NOT NULL。 –

+0

感谢编辑,使它更清晰:)它不是一个独特的在PhpMyAdmin中已将列和“Null”设置为“null”(默认为“not null”),所以它应该都是好的。 – Avicinnian