Функция возвращает всегда false при использовании логического выражения в моем выражении - PullRequest
0 голосов
/ 03 марта 2020
$firstTime = 'SELECT first_time FROM tbl_user WHERE user_id = :id';

$FTQuery = $pdo->query($firstTime);
$bool = bool($FTQuery);
if($bool>0){
    redirect_to('./admin_edit.php');
} else {
    redirect_to('index.php');
}

Я не смог найти ответ на вопрос, как мне извлечь это из моей базы данных и использовать логическое значение в утверждении, я пытаюсь использовать var_dump, потому что я видел это в аналогичном посте, что это решит проблему, но это не так. Попытался использовать переменную $ FTQuery в качестве оператора, например

if($FTQuery>0)

, но это не сработало.

1 Ответ

0 голосов
/ 03 марта 2020

PDO::query() возвращает объект PDOStatement. Если вы хотите получить значение из базы данных, используйте fetchColumn() для этого объекта. Кроме того, у вас есть заполнитель, который вы не заполняете, поэтому вам даже не следует использовать query(), но execute() в подготовленном утверждении. Приведение к логическому типу не обязательно; PHP делает подобные вещи автоматически.

$stmt = $pdo->prepare('SELECT first_time FROM tbl_user WHERE user_id = :id');
$stmt->execute(["id" => $id]);
$value = $stmt->fetchColumn();
redirect_to( $value ? './admin_edit.php' : 'index.php' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...