2011-09-18 82 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