elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:55  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  [TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)  (Leído 1,904 veces)
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
[TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)
« en: 20 Junio 2011, 06:21 »

TRABAJANDO CON PDO
PHP Data Object



CONTENIDO

          1. CONEXIÓN A LA BASE DE DATOS.
          2. EJECUCIÓN DE QUERYS
               2.1 DIRECTA.
               2.2 RETORNO DE DATOS.
               2.3 MANEJO DE DATOS.
                    2.3.1 ARRAY
                         2.3.1.1 NUMÉRICO.
                         2.3.1.2 ASOCIATIVO.
                         2.3.1.3 NUMÉRICO y ASOCIATIVO.
                    2.3.1
                    2.3.1
          3.
          4.
          5.
          6.
          7.
          ∞. BIBLIOTECA DE CÓDIGO.

Fecha ultima actualización: 20 de Junio de 2011


« Última modificación: 20 Junio 2011, 07:53 por Shell Root » En línea

---
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: [TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)
« Respuesta #1 en: 20 Junio 2011, 06:36 »

CONEXIÓN A LA BASE DE DATOS


         Principalmente lo que debemos hacer es realizar una simple conexión a cualquier base de datos, una de las ventajas y caracteristicas que tiene PDO es qué tiene el mismo string de conexión, -por así decirlo-, para cualquier motor de base de datos que está soporta. Aquí veremos algunas de estás conexiones en MySQL y PostgreSQL, para ver la diferencia y la simplicidad.

Con MySQL y PostgreSQL nos conectábamos de la siguiente forma,

Código
# MySQL
mysql_connect("$host", "$usuario", "$contraseña");
mysql_select_db("$baseDatos");
 
# PostgreSQL
pg_connect("host = $host dbname = $baseDatos user = $usuario password = $contraseña");

Ahora con PDO lo hacemos general de la siguiente forma, -sólo cambiaría el driver de conexión-,

Código
#MySQL
$conn = new PDO("mysql:host = $host; dbname = $baseDatos", $usuario, $contraseña);
 
# PostgreSQL
$conn = new PDO("pgsql:host = $host port = $puerto dbname = $baseDatos", $usuario, $contraseña);

Notamos que utiliza la misma estructura para la conexión en cualquiera de los 2 motores de base de datos.

PD: Por alguna extraña razón en la variable de contraseña al ponerla sin la ñ, el foro lo agrega #FAIL!


« Última modificación: 20 Junio 2011, 06:56 por Shell Root » En línea

---
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: [TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)
« Respuesta #2 en: 20 Junio 2011, 07:04 »

EJECUCIÓN DE QUERYS

         En la ejecución de querys se pueden definir 2 categorías. DIRECTAS, que es cuando se realiza un INSERT, UPDATE y sabemos que nunca devolverá un dato... y con RETORNO DE DATOS, que es cuando de realiza un SELECT, donde si sabemos que tendremos que manejar registros devueltos por la consulta.

Antes de mirar como se realiza esta acción con PDO miremos como se realizaba con los 2 motores de base de datos que tenemos de ejemplo.
Código
# MySQL
$query = mysql_query( $sql, $cnn );
 
# PostgreSQL
$query = pg_query( $cnn, $sql );


DIRECTA
         Esta es la forma en la que no tendremos interacción de ninguna clase con datos, sólo se ejecutará la query y los posibles valores de retorno sería VERDADERO o FALSO, para identificar el estado de la ejecución de la query. Se realizaría de la siguiente forma,
Código
$cnn->exec("INSERT INTO usuario (id, cedula, nombre) VALUES(1, '1037610909', 'Alex');");

Para este caso podríamos realizar la validación para ver si se ejecuto o no, la query. Así,
Código
$query = $cnn->exec("INSERT INTO usuario (id, cedula, nombre) VALUES(1, '1037610909', 'Alex');");
if ($query !== FALSE){
  # ...
}

RETORNO DE DATOS
         Esta es la forma en la que sí tendremos interacción de con datos que devuelve la consulta, para este caso tendríamos valores de retorno. Se realizaría de la siguiente forma,
Código
$query = $cnn->query("SELECT id, cedula, nombre FROM usuario;");

En el próximo apartado veremos como se manejan los datos de retorno de la query.
En línea

---
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: [TUTORIAL] TRABAJANDO CON PDO (PHP Data Objects)
« Respuesta #3 en: 20 Junio 2011, 07:52 »

MANEJO DE DATOS

         Ahora veremos somo 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 | 1037610790 | 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] => 1037610790 [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'] => 1037610790 ['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'] => 1037610790 [1] => 1037610790 ['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.
En línea

---
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines