Существует три способа извлечения нескольких строк, возвращаемых оператором PDO.
Простейшим является просто выполнить итерацию по самому PDOStatement:
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// iterating over a statement
foreach($stmt as $row) {
echo $row['name'];
}
другой - это выборка строк с использованием метода fetch () внутри знакомого оператора while:
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// using while
while($row = $stmt->fetch()) {
echo $row['name'];
}
, но для современного веб-приложения нам нужно, чтобы наши итерации datbase были отделены от вывода, и поэтому наиболее удобным методом было бы получить все строки сразу с помощью метода fetchAll ():
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// fetching rows into array
$data = $stmt->fetchAll();
а затем вывести их в шаблон:
- =$row['name']?>
Обратите внимание, что PDO поддерживает множество режимов сложной выборки, позволяя fetchAll () возвращать данные во многих разных форматах .