miércoles, 21 de septiembre de 2016

MANEJO DE DATOS CON PDO

    Ahora veremos como sería la forma en que se retornarían los datos, existen 3 opciones fundamentales para esto, NUMÉRICA, ASOCIATIVA, NUMÉRICA y ASOCIATIVA, cada una de está con una función diferente.

Supongamos que tenemos una base de datos con una tabla de USUARIO con los campos de ID, CEDULA y NOMBRE. En cuya tabla existen un registro con los siguientes valores,
Código:

mysql> SELECT id, cedula, nombre FROM usuario;
+----+------------+--------+
| id | cedula     | nombre |
+----+------------+--------+
|  1 | 1030010000 | Alex   |
+----+------------+--------+
1 ROW IN SET (0.00 sec)

NUMÉRICA
         Esta opción lo que hace es identificar el campo por medio de identificador que en este caso es un número. Por ejemplo, teniendo la base de datos anterior, realicemos un SELECT básico, así.
Código:

$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_NUM) ){
   $datos[] = $fila;
}

Al mostrar el array deberíamos obtener los siguientes resultados,
Código:

Array( [0] => Array( [0] => 1 [1] => 1030010000 [2] => Alex ) )


ASOCIATIVA
         Esta opción lo que hace es identificar el campo por medio de identificador que en este caso sería el nombre del campo. Siguiendo el ejemplo anterior,
Código:

$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_ASSOC) ){
   $datos[] = $fila;
}

Al mostrar el array deberíamos obtener los siguientes resultados,
Código:

Array( [0] => Array( ['id'] => 1 ['cedula'] => 1030010000 ['nombre'] => Alex ) )


NUMÉRICA y ASOCIATIVA
         En esta opción se unen las dos funciones anteriores en uno. Miremos el ejemplo en base con el ejemplo anterior,

Código:
$sql = "SELECT id, cedula, nombre FROM usuario;";
$query = $conn->query($sql);
while( $fila = $query->fetch(PDO::FETCH_BOTH) ){
   $datos[] = $fila;
}

Al mostrar el array deberíamos obtener los siguientes resultados,
Código

Array( [0] => Array( ['id'] => 1 [0] => 1 ['cedula'] => 1030010000 [1] => 
1030010000 ['nombre'] => Alex [2] => Alex ) )

NOTA GENERAL: 
El primer ARRAY es de los registros de la consulta y el segundo ARRAY, es donde tendrá los valores.