PDOStatement :: fetch
PDOStatement :: fetch - se centran en los resultados obtenidos a partir de la siguiente fila (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
explicación
gramática
mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
A partir de un conjunto de resultados asociado objeto PDOStatement obtiene la siguiente fila. fetch_style parámetro POD determina cómo se devuelven las filas.
parámetros
fetch_style
¿Cómo controlar la línea siguiente se devuelve a la persona que llama. Este valor debe ser PDO :: FETCH_ * constantes en una serie, el valor por defecto para el PDO :: ATTR_DEFAULT_FETCH_MODE (por defecto PDO :: FETCH_BOTH).
PDO :: FETCH_ASSOC: devuelve una matriz indexada nombres de las columnas del conjunto de resultados
PDO :: FETCH_BOTH (por defecto): devuelve un conjunto de resultados nombres de las columnas de índice de matriz empezando por 0 y el número de la columna
PDO :: FETCH_BOUND: devuelve
TRUE
variables, PHP y asignar valores a las columnas del conjunto de resultados enlace de método PDOStatement :: bindColumn ().PDO :: FETCH_CLASS: una petición para devolver una nueva instancia de la clase, los nombres de columna de asignación en el conjunto de resultados al nombre de la clase de la propiedad correspondiente. Si
fetch_style
contiene PDO :: FETCH_CLASSTYPE (por ejemplo: PDO :: FETCH_CLASS | PDO :: FETCH_CLASSTYPE ), el nombre de clase se determina por el valor de la primera columnaPDO :: FETCH_INTO: Actualizar una instancia de clase solicitud existente asignada a las columnas de la propiedad de clase llamado conjunto de resultados
PDO :: FETCH_LAZY: conjuntamente con PDO :: FETCH_BOTH y PDO :: FETCH_OBJ, para la creación de un nombre de variable de objeto usado para acceder
PDO :: FETCH_NUM: un retorno a cero el número de columna de la matriz indexados conjunto de resultados
PDO :: FETCH_OBJ: Devuelve un nombre de propiedad correspondiente a los nombres de las columnas de resultados de fijar objetos anónimos
cursor_orientation
Para un objeto PDOStatement que representa un cursor desplazable, este valor determina qué fila se devuelve a la persona que llama. Este valor debe ser PDO :: FETCH_ORI_ * constantes en una serie, el valor predeterminado es PDO :: FETCH_ORI_NEXT. Para obtener el objeto PDOStatement utilizando los cursores desplazables, debe utilizar cuando PDO :: prepare declaraciones de pretratamiento) SQL (, establece el PDO :: ATTR_CURSOR atributo PDO :: CURSOR_SCROLL.
offset
Para un parámetro cursor_orientation se establece en PDO :: objeto PDOStatement que representa a los cursores desplazables FETCH_ORI_ABS, este valor especifica el conjunto de resultados que desea obtener la línea número de línea absoluta.
Para un parámetro cursor_orientation se establece en PDO :: FETCH_ORI_REL el objeto PDOStatement que representa un cursor desplazable, este valor especifica la llamada PDOStatement :: fetch () antes de la posición del cursor con respecto a la línea que desea obtener
Valor de retorno
Antes, cuando este valor (método) función depende del tipo de extracción exitosa. En todos los casos, el fracaso devuelve FALSE.
Ejemplos
Obtener la fila con diferentes métodos de extracción
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 运用 PDOStatement::fetch 风格 */ print("PDO::FETCH_ASSOC: "); print("Return next row as an array indexed by column name\n"); $result = $sth->fetch(PDO::FETCH_ASSOC); print_r($result); print("\n"); print("PDO::FETCH_BOTH: "); print("Return next row as an array indexed by both column name and number\n"); $result = $sth->fetch(PDO::FETCH_BOTH); print_r($result); print("\n"); print("PDO::FETCH_LAZY: "); print("Return next row as an anonymous object with column names as properties\n"); $result = $sth->fetch(PDO::FETCH_LAZY); print_r($result); print("\n"); print("PDO::FETCH_OBJ: "); print("Return next row as an anonymous object with column names as properties\n"); $result = $sth->fetch(PDO::FETCH_OBJ); print $result->NAME; print("\n"); ?>
Los ejemplos anteriores sería:
PDO::FETCH_ASSOC: Return next row as an array indexed by column name Array ( [NAME] => apple [COLOUR] => red ) PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number Array ( [NAME] => banana [0] => banana [COLOUR] => yellow [1] => yellow ) PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties PDORow Object ( [NAME] => orange [COLOUR] => orange ) PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties kiwi
Utilice un cursor desplazable recuperar filas
<?php function readDataForwards($dbh) { $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)); $stmt->execute(); while ($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 = 'SELECT hand, won, bet FROM mynumbers 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_LAST); do { $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n"; print $data; } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR)); $stmt = null; } catch (PDOException $e) { print $e->getMessage(); } } print "Reading forwards:\n"; readDataForwards($conn); print "Reading backwards:\n"; readDataBackwards($conn); ?>
Los ejemplos anteriores sería:
Reading forwards: 21 10 5 16 0 5 19 20 10 Reading backwards: 19 20 10 16 0 5 21 10 5