Tutorial PHP - PDO : Insertar , Modificar, Eliminar y Listar registros
Para los que recien inician con PHP y han oido algo de PDO, bueno PDO es una libreria de PHP que nos permite abstraer ciertos conceptos de manejo de base de datos, las siglas dePDO significa PHP Data Objects (Objetos de Datos PHP), en resumidas utilizando PDO, nos permite evitar utilizar funciones propias de cada driver de base de datos, por ejemplo si usasMySQL dependiendo de la libreria mysql o mysqli, para conectarte usaras mysql_connect("localhost", "usuario", "contraseña") o $mysqli = new mysqli("localhost", "usuario", "contraseña", "basedatos"), de esto nos evita PHP PDO.
En PHP PDO utilizamos para conectarnos una cadena DSN, a través de ella definimos que motor usaremos, es algo similar al manejo en JAVA JDBC.
Esto nos dara algo similar a
Codigo | Descripcion
cod1 | producto 1
cod2 | producto 2
cod3 | producto 3
Una de las grandes utilidades de PHP PDO, es el uso de prepared statements, un prepared statement, es una sentencia que ha sido preformateada o preparada antes de su ejecución, utilizando prepared statements agrega una capa extra de seguridad a nuestras aplicaciones, sobre todo para evitar inyecciones sql.
Otra gran ayuda de PHP PDO, es la ejecucion de procedimientos almacenados, para este ejemplo los parametros será pasados de acuerdo a su posicion.
Lo incluyo como un punto aparte por si a alguien le aparece un error al querer hacer una consulta similar.
Esta es la forma correcta de hacerlo
Para capturar los errores se puede utilizar Try Catch, similar a como se usa en JAVA o .Net
Conectar a una base de datos con PHP PDO
En PHP PDO utilizamos para conectarnos una cadena DSN, a través de ella definimos que motor usaremos, es algo similar al manejo en JAVA JDBC.
1
| $con = new PDO( 'mysql:host=localhost;dbname=test' , $usuario , $contrase ña); |
Cerrar conexion con una base de datos
1
| $con = null; |
Listar registros utilizando PHP PDO
1
2
3
4
5
| $resultado = $con ->query( 'SELECT * from MITABLA' ); foreach ( $resultado as $registro ){ echo " $registro [0] | $registro [1] } |
Esto nos dara algo similar a
Codigo | Descripcion
cod1 | producto 1
cod2 | producto 2
cod3 | producto 3
Utilizar prepared statements en PHP PDO
Una de las grandes utilidades de PHP PDO, es el uso de prepared statements, un prepared statement, es una sentencia que ha sido preformateada o preparada antes de su ejecución, utilizando prepared statements agrega una capa extra de seguridad a nuestras aplicaciones, sobre todo para evitar inyecciones sql.
Insertar registros con prepared statements en PHP PDO
1
2
3
4
5
6
7
8
9
10
11
12
13
| $sentencia = $con ->prepare( "INSERT INTO Producto (codigo, descripcion) VALUES (:codigo, :descripcion)" ); $sentencia ->bindParam( ':codigo' , $codigo ); $sentencia ->bindParam( ':descripcion' , $descripcion ); // insertar una fila $codigo = 'cod123' ; $descripcion = "Nuevo Producto" ; $sentencia ->execute(); // insertar otra fila con diferentes valores $codigo = 'cod456' ; $descripcion = "Otro Producto" ; $sentencia ->execute(); |
Modificar o Actualizar registros con prepared statements en PHP PDO
1
2
3
4
5
6
7
| $sentencia = $con ->prepare( "UPDATE Producto SET descripcion=:descripcion WHERE codigo:=codigo" ); $sentencia ->bindParam( ':codigo' , $codigo ); $sentencia ->bindParam( ':descripcion' , $descripcion ); $codigo = 'cod123' ; $descripcion = "Nuevo Producto 2" ; $sentencia ->execute(); |
Ejecutar Procedimientos Almacenados en PHP PDO
Otra gran ayuda de PHP PDO, es la ejecucion de procedimientos almacenados, para este ejemplo los parametros será pasados de acuerdo a su posicion.
1
2
3
| $sentencia = $con ->prepare( "CALL sp_calcular_ventas_por_categoria_mes(?, ?)" ); $sentencia ->bindParam( $mes ); $sentencia ->bindParam( $categoria ); |
Ejecutar una consulta LIKE con Prepared Statements en PHP PDO
Lo incluyo como un punto aparte por si a alguien le aparece un error al querer hacer una consulta similar.
Esta es la forma correcta de hacerlo
1
2
3
4
| $sentencia = $con ->prepare( "SELECT * FROM Producto WHERE descripcion LIKE ? " ); $sentencia ->bindParam( "%$texto_buscado%" ); $sentencia ->execute(); $resultados = $sentencia ->fetchAll(); |
Capturar errores en PHP PDO
Para capturar los errores se puede utilizar Try Catch, similar a como se usa en JAVA o .Net
1
2
3
4
5
6
7
8
9
10
11
| try { $con = new PDO( 'mysql:host=localhost;dbname=test' , $usuario , $contrase ña); /* MAS CODIGO */ $con = null; } catch (PDOException $e ) { print "Hubo un error: " . $e ->getMessage() . " "; die (); } |
Comentarios
Publicar un comentario