Seleccionando filas donde un campo es nulo usando las declaraciones preparadas de PHP DOP y MySQL

He estado convirtiendo una aplicación para usar declaraciones preparadas con DOP en lugar de mysqli y estoy teniendo un problema extraño. Tengo algunos registros en la base de datos donde se espera que un campo sea nulo. No 'nulo' (cadena) o '' (cadena vacía), sino NULL. Construyo mis consultas dinámicamente, así que en el pasado, cuando encontré una variable nula en un objeto, construía la consulta de esta manera:

WHERE fieldName is null;

Y obtendría los resultados esperados cuando el campo fuera nulo.

Ahora, con PDO, mis consultas no devuelven ningún resultado y no recibo ningún error. Simplemente no está devolviendo los registros que esperaría. Cuando hago eco de las consultas creadas y las ejecuto directamente en MySQL obtengo los resultados esperados, pero dentro de la aplicación no se devuelven resultados.

Algunas de las cosas que he intentado incluyen la creación de consultas que se parecen a esto:

WHERE fieldName is null;

o

WHERE fieldName <=> null;

También he probado la declaración estándar preparada de:

WHERE fieldName = :fieldName

y luego se unen con este tipo de declaraciones:

$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);

Cualquier ayuda con esto sería muy apreciada. Mi versión de PHP es 5.3.10 y MySQL es 5.5.22. Como una pregunta complementaria, todavía no tengo clara la diferencia entre bindParam y bindValue, por lo que si tiene sentido incluir en su respuesta realmente agradecería alguna aclaración sobre el tema ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta