Php 空白变量和INT列?

Php 空白变量和INT列?,php,mysql,Php,Mysql,表中有一列的数据类型为整数。我想到的是,添加到该列中的值要么是0-N,要么是空变量中的空值(见下文),但我不确定这是否可行 if($resource) { $resource = $id - 2; } else { $resource = ""; } $result = mysql_query("INSERT INTO table (...,resource,...) VALUES (...,'$resource',...)"); 如果不是,我可以改为使用VARCHAR的数据类型

表中有一列的数据类型为整数。我想到的是,添加到该列中的值要么是0-N,要么是空变量中的空值(见下文),但我不确定这是否可行

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";
}
在这种情况下,当从列
资源
中提取值时,是否需要执行任何转换函数,或者数字是否会自动被视为整数?

如果该字段出于任何原因应为“白色”,我认为您应该将其标记为可空,并使用单词NULL(非无效)

如果一列是一个数字,永远不要使用varchar,你会失去很多东西(另外,int比varchar小)

编辑1:代码段以允许列上的空值:

ALTER TABLE mytable MODIFY mycolumn INT;
如果指定为:

ALTER TABLE mytable MODIFY mycolumn INT NOT NULL;
它将不可为null,因此如果您没有以不同的方式声明它,它在默认情况下应该为null

编辑2:重要注意事项,列不能唯一否则该值将不可为空

如果该字段出于任何原因应为“白色”,我认为您应该将其标记为可空,并使用单词NULL(非无效)

如果一列是一个数字,永远不要使用varchar,你会失去很多东西(另外,int比varchar小)

编辑1:代码段以允许列上的空值:

ALTER TABLE mytable MODIFY mycolumn INT;
如果指定为:

ALTER TABLE mytable MODIFY mycolumn INT NOT NULL;
它将不可为null,因此如果您没有以不同的方式声明它,它在默认情况下应该为null


编辑2:重要注意事项,列不能唯一否则该值将不可为空

因此,我仍然可以将列设置为
INT
,但使用NULL作为值来代替
“”
“无效的”
?是的,但必须将数据库列设置为可为NULL。NULL不应也被引用(是一个特殊值)。我忘了,默认情况下列是可空的,您只需避免将其设置为非空。感谢您的编辑,使其更加清晰:)。它不是唯一的列,并且在PhpMyAdmin中已将“NULL”设置为
NULL
(默认设置为
notnull
),所以应该都很好。所以我仍然可以将列设置为
INT
,但使用NULL作为值来代替
”无效的
?是的,但必须将数据库列设置为可为NULL。NULL也不应被引用(是一个特殊值)。我忘了,默认情况下列是可以为NULL的,您只需避免将其设置为NOTNULL即可。感谢您的编辑,使其更加清晰:)。它不是唯一的列,PhpMyAdmin中的“Null”已设置为
Null
(默认设置为
notnull
),因此应该都是好的。