Fetch debe usarse para mostrar la siguiente fila del resultado de la base de datos.
Para obtener todas las filas, debe usar fetchAll() ;
- PDOStatement::fetch — Obtiene la siguiente fila de un conjunto de resultados
- PDOStatement::fetchAll() — Devuelve una matriz que contiene todas las filas del conjunto de resultados
Cambia tu ejemplo a:
<?php
$sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
$f = $sql->query('select * from user');
$f->setFetchMode(PDO::FETCH_ASSOC);
print_r($f->fetchAll());
?>
o si quieres usa PDOStatement::fetch a
<?php
$sql = new PDO('mysql:host=localhost;dbname=b', 'root', 'root');
$f = $sql->query('select * from user');
while($row = $sth->fetch(PDO::FETCH_ASSOC))
{
print_r($row);
}
?>