Как получить в PDO объект?

341
11 июля 2017, 22:13

Есть запрос:

$db = $pdo->prepare('SELECT `email` FROM `user` WHERE email=:email');
$db->bindParam(':email', $email, PDO::PARAM_STR);
$db->execute();
$User = $st->fetchAll();

Суть в том, что в переменной $User в итоге оказывается просто массив, с которым потом удобно работать в процедурном стиле. А как быть если я хочу что бы результат выборки из БД был представлен в виде объекта?

Answer 1

Что бы получить объект надо сделать так:

$db = $pdo->prepare(" SELECT `email` FROM `user` ");
$db->execute();
$User = $sth->fetch(PDO::FETCH_OBJ);
$Test = $User->fio;
echo '<pre>'; var_dump($Test); echo '</pre>'; // тут строка
echo '<pre>'; var_dump($User); echo '</pre>'; // тут объект
Answer 2

PDO::FETCH_CLASS создает и возвращает объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам класса, и следом вызывает конструктор, если не задан PDO::FETCH_PROPS_LATE

$st->setFetchMode(PDO::FETCH_CLASS, 'User');
$users = $st->fetchAll();

Можно также использовать $st->fetchObject('User')

Answer 3

Попробуй так:

$st->fetchAll(PDO::FETCH_OBJ);
READ ALSO
Добавление товаров vk api [требует правки]

Добавление товаров vk api [требует правки]

Может кто-нибудь скинуть примерчик добавления товаров в вк с загрузкой фотографии?

308
Interbase 2009 + php

Interbase 2009 + php

Есть база intrerbase ods 131, есть ли возможность подключиться к ней с php? Ранее с такой базой не работал, пару дней погуглив пришел к выводу, что с версией...

260
Биндинг и значения в PDO

Биндинг и значения в PDO

Первый вопрос по коду:

313