2012-04-26 60 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寫爲字符串。