PDOStatement::fetch — Получить следующую строку из набора результатов (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
смешанный PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
Получает следующую строку из набора результатов, связанного с объектом PDOStatement. Параметр fetch_style определяет, как POD возвращает строки.
выборка_стиля
Управляет тем, как следующая строка возвращается вызывающему объекту. Это значение должно быть одной из констант серии PDO::FETCH_*, а значением по умолчанию является значение PDO::ATTR_DEFAULT_FETCH_MODE (по умолчанию — PDO::FETCH_BOTH).
PDO::FETCH_ASSOC : Возвращает массив, индексированный по имени столбца набора результатов.
PDO::FETCH_BOTH (по умолчанию): возвращает массив, индексированный именем столбца набора результатов и номером столбца, начинающимся с 0.
PDO::FETCH_BOUND : Возвращает TRUE
и присваивает значение столбца в наборе результатов переменной PHP, связанной методом PDOStatement::bindColumn().
PDO::FETCH_CLASS : Возвращает новый экземпляр запрошенного класса, сопоставляя имена столбцов в наборе результатов с соответствующими именами атрибутов в классе. Если fetch_style
содержит PDO::FETCH_CLASSTYPE (например: PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE ), имя класса определяется значением первого столбца.
PDO::FETCH_INTO : обновляет существующий экземпляр запрошенного класса, сопоставляя столбцы результирующего набора с атрибутами, указанными в классе.
PDO::FETCH_LAZY : используйте PDO::FETCH_BOTH в сочетании с PDO::FETCH_OBJ для создания имени объектной переменной для доступа.
PDO::FETCH_NUM : Возвращает массив, индексированный по номеру столбца набора результатов, начиная с 0.
PDO::FETCH_OBJ : возвращает анонимный объект, имя атрибута которого соответствует имени столбца результирующего набора.
курсор_ориентация Для прокручиваемого курсора, представленного объектом PDOStatement, это значение определяет, какая строка будет возвращена вызывающему объекту. Это значение должно быть одной из констант серии PDO::FETCH_ORI_*, значением по умолчанию является PDO::FETCH_ORI_NEXT. Чтобы объект PDOStatement использовал прокручиваемый курсор, необходимо установить для атрибута PDO::ATTR_CURSOR значение PDO::CURSOR_SCROLL при использовании PDO::prepare() для подготовки оператора SQL.
offset Для прокручиваемого курсора, представленного объектом PDOStatement с параметром курсора_ориентации, установленным в PDO::FETCH_ORI_ABS, это значение определяет абсолютный номер строки в наборе результатов, который необходимо получить. Для прокручиваемого курсора, представленного объектом PDOStatement с параметром курсора_ориентации, установленным в PDO::FETCH_ORI_REL, это значение определяет положение строки, которую нужно извлечь, относительно курсора перед вызовом PDOStatement::fetch().
Значение, возвращаемое этой функцией (методом) в случае успеха, зависит от типа извлечения. Во всех случаях при ошибке возвращается FALSE.
<?php$sth = $dbh->prepare("ВЫБЕРИТЕ имя, цвет ИЗ фруктов");$sth->execute();/* Use PDOStatement::fetch style*/print("PDO::FETCH_ASSOC: ") ;print("Вернуть следующую строку в виде массива, индексированного по имени столбцаn");$result = $sth->fetch(PDO::FETCH_ASSOC);print_r($result);print("n");print("PDO::FETCH_BOTH: ");print("Вернуть следующую строку в виде массива, индексированного обоими столбцами имя и номерn");$result = $sth->fetch(PDO::FETCH_BOTH);print_r($result);print("n");print("PDO::FETCH_LAZY: ");print("Вернуть следующую строку как анонимный объект с именами столбцов как свойстваn");$result = $sth->fetch(PDO::FETCH_LAZY);print_r($result);print("n");print("PDO::FETCH_OBJ: ");print("Вернуть следующую строку как анонимный объект с именами столбцов как свойстваn");$result = $sth->fetch(PDO::FETCH_OBJ);print $result->NAME;print("n");?>
В приведенном выше примере выводится:
PDO::FETCH_ASSOC: вернуть следующую строку в виде массива, индексированного по имени столбца nameArray( [NAME] => apple [COLOUR] => red)PDO::FETCH_BOTH: вернуть следующую строку в виде массива, индексированного как по имени столбца, так и по номеруArray( [NAME] ] => банан [0] => банан [ЦВЕТ] => желтый [1] => желтый)PDO::FETCH_LAZY: вернуть следующую строку как анонимный объект с помощью имена столбцов как свойстваPDORow Object( [NAME] => оранжевый [COLOUR] => оранжевый)PDO::FETCH_OBJ: вернуть следующую строку как анонимный объект с именами столбцов как свойстваkiwi
<?phpfunction readDataForwards($dbh) { $sql = 'ВЫБЕРИТЕ руку, выиграли, сделайте ставку ИЗ моих чисел ORDER BY BET'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO: :CURSOR_SCROLL)); $stmt->execute(); ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { $data = $row[0] . "t" . $row[1] "t" . $row[2] ". n"; print $data; } $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}function readDataBackwards($dbh) { $sql = 'ВЫБЕРИТЕ руку, выиграл, сделайте ставку ИЗ моих чисел ORDER BY bet'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL) ); $stmt->выполнить(); $строка = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST do { $data = $row[0] . "t" . $row[1] . $row[2] . "n"; напечатайте $data } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR)); $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}print "Чтение вперед:n";readDataForwards($conn);print "Чтение назад :n";readDataBackwards($conn);?>
В приведенном выше примере выводится:
Чтение вперед: 21 10 516 0 519 20 10 Чтение назад: 19 20 1016 0 521 10 5