@sprashivatel

Почему запрос возвращает объект, если параметр — false?

$this->email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); // bool false
$data = $this->pdo('select id from users where email = ? limit 1', [
    $this->email
])->fetch(); // в таблице есть одна строка, email заполнен, выборка по умолчанию PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
var_dump($data); // object(stdClass)#7 (1) { ["id"]=> string(1) "1" }

если в таблице users нет ни одной строки, то
var_dump($data); // bool false
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 2
@JohnDidact
Нуб во всём
Потому что
// в таблице есть одна строка, email заполнен, выборка по умолчанию PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
а точнее, выборка по умолчанию указана, как PDO::FETCH_OBJ
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
select 'foo' = '', 'foo' = 0, 'foo' = false;
Как думаете, какие 3 результата сравнения будут? А теперь проверьте.

Так работает динамическая типизация операндов различающихся типов в mysql.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы