2012-04-26 58 views
0

您好,我有一个关于空值的问题。空值SQL Server和PHP

基本上我有一堆变量,我想做一堆检查,然后在最后添加值,但其中一些值将需要为NULL。

所以例如,如果没有设置一个值我想将变量的值设置为null,以便在插入到数据库时不会放入任何东西。

$sql = "INSERT into specified table the values (?, ?,?)": 
$params = "$param1, $NULLVALUEparam2, $param3); 

所以基本上相同的查询将每次执行但从形式输入一些允许为空,我怎么添加为NULL?

背后的故事我正在创建一个注册页面,并不需要一些信息。这些值将通过POST方法发送到此操作页面,并将它们添加到数据库中。

我是否在谈论这个错误,有没有更好的方法?提前致谢。

+0

我很确定你发布的代码不起作用,但是你的使用方式也不清楚。你能提供你试过的代码样本吗?一般来说,只需编组参数并在没有得到响应的地方插入null。 – 2012-04-26 22:38:30

+0

“$ params”不应该是一个数组吗? – 2012-04-26 22:41:59

+0

这将是一个数组我没有任何代码,此刻我正在通过理论工作。我的问题是你可以插入一个NULL值,你可以设置一个参数的值为NULL? – 2012-04-26 23:11:22

回答

1

如果要插入NULL到一个特定的列在一排使用关键字NULL

INSERT INTO yourtable (id, created_at, string, string1) 
VALUES (NEWID(), GETDATE(), 'your string you have', NULL) 

此插入一行并把它作为NULL。

如果您没有特定列的值,您甚至不需要插入它,那么您只需跳过它。

INSERT INTO yourtable (id, created_at, string) 
VALUES (NEWID(), GETDATE(), 'your string you have') 

这将添加行并留下字符串1列NULL。但是,当然,在这两种情况下,您的列必须允许NULL值。

所以你的代码应该跳过列,或者当你构建你之后执行的sql语句时,只需要将NULL写为字符串。