pdo

Режимы FETCH

Смотрим код ниже:

//MySQL
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
//SQLite
$result = sqlite_query($dbh, $sql);
$row = sqlite_fetch_array($result, SQLITE_ASSOC);
//PostgreSQL
$result = pg_query($sql);
$row = pg_fetch_assoc($result);
$row = pg_fetch_assoc($result, 0, PGSQL_ASSOC);
//PDO
$stmt = $conn->query($sql);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$result = $stmt->fetch(PDO::FETCH_NUM);
$result = $stmt->fetch(PDO::FETCH_BOTH);

В PDO мы запрос получили (query). Далее используем метод fetch: 3 разновидности констант, в зависимости о того, какой массив хотим получить: ассоциативный, нумерованный, смешаный.

Режим FETCH OBJECT

$obj = $stmt->fetch(PDO::FETCH_OBJ); //веонется объект, к нему обращаемся как к объекту
echo $obj->id;
echo $obj->name;
echo $obj->email;

Т.е. в этом случае мы получаем не массив, а объект. Поэтому работать с ним надо соответствующим образом.

Режим FETCH LAZY

$result = $stmt->fetch(PDO::FETCH_LAZY);
echo $result[0];
echo $result['name'];
echo $result->email;

Для совсем ленивых людей. Это совокупность FETCH BOTH + FATCH OBJECT. Можно обращаться к результату как к массиву, как к объекту.




Добавить комментарий

Ваш e-mail не будет опубликован.