Eftersom denna fråga har skrivits introducerade mysql en rymdskeppsoperatör som tillåter oss att använda en vanlig fråga för att matcha ett nollvärde
WHERE fieldName <=> :fieldName;
kommer att matcha både en null
eller något icke-nullvärde.
Så skriv bara din fråga direkt och kör den som vanligt
$stmt = $db->prepare('SELECT field FROM table WHERE fieldName <=> :fieldName;');
$stmt->execute(['fieldName' => null]);
$result = $stmt->fetchAll(); // whatever fetch method is suitable
Och med dynamiskt byggda frågor är det samma sak.