我有以下查詢:PDO檢查現場對準備:PARAM,處理IS NULL條件
//query:
$query = "
SELECT field1 FROM table
WHERE
field2 = :PARAM1
AND ...
AND fieldx = :PARAM1X";
//params:
$params = array();
$params [":PARAM" . $i] = NULL;
//prepare and execute:
$o = $cnx->prepare($query);
$o->execute($params);
我怎麼能結合PARAMS與NULL
值? PDO會自動將= :PARAM1
更改爲IS NULL
?要說清楚,試圖計算WHERE field = null
在mysql中不起作用,並且永遠不會返回任何內容。我們必須改用WHERE field IS NULL
。
這就是我現在正在處理的。
我必須說,我的第一個測試是積極的,但我真的不希望發現在生產環境中6個月的副作用...
我們可以看到您用來執行綁定的代碼嗎? – ultranaut
是的,在這裏我發佈了它。自從我意識到我沒有明確地「綁定」參數,而是準備它們(道歉)之後,我也更正了標題 – Sebas
在我看來,將此問題視爲「不具有建設性」是錯誤的。然而,它是這個問題的重複:[如果我想讓它同時接受INT和NULL與PDO?](http://stackoverflow.com/questions/7082405/)如何綁定一個值。我們接受的答案是使用[NULL-safe equal operator'<=>'](http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#operator_equal-to)。 – TachyonVortex