PDO не хочет выполнять подготовленный запрос

Я вообще не пойму почему. Попробовал выполнить тот же запрос просто с query все работает, если подготовленный запрос не ничего, exception не выкидывает просто ничего не возвращает:

 public function getUserTabNumber($tabNumber) {
        $arrRes = array();
        $sql = "SELECT * FROM users WHERE tab_number = :tab_number";
        try {
            $stmt = $this->conn->prepare($sql);
            $stmt->execute(array("tab_number"=>$tabNumber));
            $stm = $stmt->fetchAll();
            if ($stmt->rowCount() == 1) {
                foreach ($stmt as $row) {
                    $arrRes['tab_number'] = $row['tab_number'];
                    $arrRes['token'] = $row['token'];
                }
            }
        } catch (Exception $e) {
            $arrRes = $e;
        }

        return arrRes;
    }

Ответы (3 шт):

Автор решения: 4 kilograms

Пропустили букву в переменной

$stm = $stmt->fetchAll();

Вот так должно сработать:

public function getUserTabNumber($tabNumber) {
        $arrRes = array();
        $sql = "SELECT * FROM users WHERE tab_number = :tab_number";
        try {
            $stmt = $this->conn->prepare($sql);
            $stmt->execute(array("tab_number"=>$tabNumber));
            $stmt = $stmt->fetchAll();
            if ($stmt->rowCount() == 1) {
                foreach ($stmt as $row) {
                    $arrRes['tab_number'] = $row['tab_number'];
                    $arrRes['token'] = $row['token'];
                }
            }
        } catch (Exception $e) {
            $arrRes = $e;
        }

        return arrRes;
    }
→ Ссылка
Автор решения: Madoka Magica

Наконец то добил 3 пота сошло. Переименовал название столбца таблицы на tab, не думаю что дело в этом но все же:

 public function getUserTabNumber($tabNumber) {
            $arrRes = array();
            $sql = "SELECT * FROM `users` WHERE `tab` = :tab";
            try {
                $stmt = $this->conn->prepare($sql);
                $stmt->execute(array("tab"=>$tabNumber));
                //$stm = $stmt->fetchAll();
                if ($stmt->rowCount() == 1) {
                    foreach ($stmt as $row) {
                        $arrRes['tab_number'] = $row['tab'];
                        $arrRes['token'] = $row['token'];
                    }
                }
            } catch (Exception $e) {
                $arrRes = $e;
            }
    
            return arrRes;
    }
→ Ссылка
Автор решения: YaMus

Вы возвращаете без знака $ Может так?

return $arrRes;
→ Ссылка