Выбор строк с нулевым полем с использованием подготовленных операторов PHP PDO и MySQL

Я конвертировал приложение, чтобы использовать подготовленные операторы PDO, а не mysqli, и столкнулся со странной проблемой. У меня есть несколько записей в базе данных, где ожидается, что поле будет нулевым. Не 'null' (строка) или '' (пустая строка), но NULL. Я строю свои запросы динамически, поэтому в прошлом, когда я сталкивался с пустой переменной в объекте, я строил запрос следующим образом:

WHERE fieldName is 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, поэтому, если есть смысл включить в ваш ответ, я был бы очень признателен за разъяснения по этому вопросу ...

Ответы на вопрос(3)

Ваш ответ на вопрос