2011-03-07 13 views
7

我想綁定PARAMS INSERT INTO MySQLi準備語句,如果該變量存在,否則插入空。PHP的bind_params與空

這是我有什麼,但它不工作:

if (!empty($name)) { 
    $result->bind_param('ss', $name, $url_friendly_name); 
} else { 
    $result->bind_param('ss', null, null); 
} 

if (!empty($description)) { 
    $result->bind_param('s', $description); 
} else { 
    $result->bind_param('s', null); 
} 

有誰知道這樣做的更好的辦法還是有隻是一個小問題,我的代碼。我正在爲準備好的聲明中的每個變量進行上述操作。

+0

您可以在那裏使用空字符串,例如: ''''? – alex 2011-03-07 00:39:40

+0

你是否試圖離開查詢字段,如果它是空的? – 2011-03-07 00:50:51

+0

@tandu是的,如果我可以離開一個領域,那也是工作。你有更好的方式來做這件事嗎? – ATLChris 2011-03-07 03:53:20

回答

4

bind_param作品參考。這意味着它需要一個變量,然後在execute中使用該變量的值。

null不是一個變量。

嘗試設置變量爲null,然後綁定該變量。

(還要考慮使用替代的mysqli PDO,其中execute方法可以採取一個簡單的數組,你可以繞過的mysqli的古怪結合的方法。)

1

請記住,你不能使用bind_param兩次,因爲最後的聲明將取代第一個。嘗試找到一種方法來使用bind_param一次。