我一直在轉換應用程序以使用PDO準備語句而不是mysqli,並且遇到了一個奇怪的問題。我在數據庫中有一些記錄,預計字段將爲空。不是'null'(字符串)或''(空字符串),但是是NULL。我建立我的動態查詢,所以在過去,當我在一個物體在null變量來了,我想建立這樣的查詢:使用PHP PDO準備的語句和MySQL選擇字段爲空的行
WHERE fieldName is null;
當現場爲null會得到預期的結果。
現在PDO,我的查詢沒有返回任何結果,我沒有得到任何錯誤。它只是沒有返回我期望的記錄。當我回應構建的查詢並在MySQL中直接運行它們時,我得到了預期的結果,但在應用程序中沒有返回結果。
一些我試過的東西包括像這樣的建築查詢:
WHERE fieldName is null;
或
WHERE fieldName <=> null;
我也嘗試過的標準編制聲明:
WHERE fieldName = :fieldName
然後綁定這些種語句:
$stmt->bindParam(":$field", $value);
$stmt->bindParam(":$field", $value, PDO::PARAM_NULL);
$stmt->bindParam(":$field", null, PDO::PARAM_NULL);
$stmt->bindValue(":$field", null, PDO::PARAM_NULL);
$stmt->bindValue(":$field", null, PDO::PARAM_INT);
任何幫助,這將不勝感激。我的PHP版本是5.3.10,MySQL是5.5.22。作爲一個側面的問題,我仍然不清楚bindParam和bindValue之間的區別,所以如果它包含在你的答案中是有意義的,我將非常感謝關於這個問題的一些澄清...
不同的問題,但所有的awnsers都在這裏:http://stackoverflow.com/questions/1391777/how-do-i-insert-null-values-using-pdo –
我試過所有不同的建議這個問題,目前還沒有工作...... – cdwhatcott
如果你插入或搜索null,你爲什麼需要參數化? –