Возвращает значение, если в PDO нет строк

У меня есть функция PDO:

function(){ $success=$this->query($query, $bindvalues); return ($success == true) ? $this->stmt->fetch(PDO::FETCH_ASSOC) : false; } 

Когда я выполняю запрос выбора, который возвращает строку (или больше), она вернется, например:

 array(1) { ["Id"]=> string(1) "1" } 

Когда запрос завершается с ошибкой (например, если у меня неправильный синтаксис), он вернет FALSE.

Но если строки с запросом не найдены, он также возвращает FALSE.

Таким образом, возвращаемое значение с ошибкой в ​​запросе и без строк будет возвращать FALSE. Как это возможно? Мне нужно вернуть FALSE только тогда, когда в запросе есть ошибка, и мне нужно вернуть NULL, например, когда результатов нет. Что-то не так в моей функции?

Благодаря!

Если ни одна строка не была найдена, PDO :: fetch возвращает false. Это факт. Поэтому измените свою функцию:

 function(){ $success = $this->query($query, $bindvalues); if(!$success) { //handle error return false; } $rows = $this->stmt->fetch(PDO::FETCH_ASSOC); return $rows ?: null; } 

Ну вот

 function fetchRow($query, $bindvalues) { $stmt = $this->query($query, $bindvalues); return $stmt->fetch(); }