PDO :: FETCH_OBJ php

php mysql pdo

6454 просмотра

2 ответа

74 Репутация автора

PDO :: FETCH_OBJ -> Возвращает анонимный объект с именами свойств, которые соответствуют именам столбцов, возвращаемых в вашем наборе результатов. Например:

 Array ( [0] => stdClass Object ( [id] => 3 [email] => frank@frank.com [password] => password [salt] => salt [devices] => 1 [accounttype] => 1 [accountcreated] => 2014-03-26 [confirmed] => 1 [confirmcode] => 0 [logindate] => 2014-03-26 ) )

Как я могу получить значение электронной почты ??????? Ниже то, что я имею до сих пор

  $_db = DB::getInstance();
  $_db = $_db->query('SELECT * FROM users WHERE email = ? AND password = ? ', array($email, $pass));
  $results = $_db->results();
  print_r($results);
  print_r($results->email);  <<<<<<<<<<<--- does not work!

ПОЖАЛУЙСТА, ПОМОГИТЕ быть в этом в течение 24 часов .... Я знаю, это просто, потому что я делал это раньше ... просто не могу вспомнить, чтобы найти какой-либо ссылочный код!

Автор: Franklin Noel Источник Размещён: 26.03.2014 09:33

Ответы (2)


3 плюса

4671 Репутация автора

Решение

Из того, что вы вставили, вы можете видеть, что $ results является массивом объектов, поэтому вам нужно указать, какой элемент в массиве получить правильный результат для электронной почты.

Пример:

print_r($results[0]->email);
Автор: skrilled Размещён: 26.03.2014 09:35

1 плюс

11 Репутация автора

Вы должны использовать что-то вроде следующего:

foreach ($results as $row) {
        print_r($row->email);
}

Если вы ожидаете получить только одну строку, это всегда хорошая идея проверить это. Вы можете использовать count () с вашей переменной $ results следующим образом:

if (count($results)==1) {
      print_r($results[0]->email);
}
Автор: Gustavo Размещён: 15.12.2014 04:17
32x32