1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Tutorial Buenas practicas en PHP: ¿Como usar y establecer una conexion PDO_MySQL?

Tema en 'Tutoriales de PHP' comenzado por Creigthon, 17 de Enero de 2015.

  1. Creigthon

    Creigthon
    Moderador

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    181
    Me gusta recibidos:
    110
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Programador analista y Diseñador Gráfico.
    Localización:
    La Serena, Chile
    ¿Que es una API o IPA? (definicion en Wiki)
    Interfaz de programación de aplicaciones (IPA) o API (del inglés: Application Programming Interface) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas.

    ¿Que API ofrece PHP para conectarme a MySql?
    PHP ofrece tres APIs diferentes para conectarse a MySQL; MySqli, PDO_MySql y MySql_Connect. La utilizacion de estas correspondera a la version de PHP que fue instalada en el servidor web y de base de datos.
    • La extensión mysqli (mysql improved) permite acceder a la funcionalidad proporcionada por MySQL 4.1 y posterior.
    • La extensión pdo_mysql es un controlador que implementa la interfaz de Objetos de Datos de PHP (PDO) para permitir el acceso de PHP a bases de datos de MySQL 3.x, 4.x y 5.x.
    • La extensión mysql_connect está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL.
    Buenas practicas en interfaz de Objetos de Datos de PHP (PDO).
    La utilizacion de Try-Catch permite verificar errores y permitir de manera limpia y consistente el error resultante a tal codigo.

    El significado de PDO es PHP Data Objects, lo que significa que trabajamos con Programación Orientada a Objetos (POO). Para poder trabajar con PDO necesitamos crear una instancia de la clase PDO. Algunos métodos son: prepare, execute, exec, beginTransaction, bindParam, commit.

    Lo primero que tenemos que hacer antes de crear nuestra conexión es verificar que tenemos PDO disponible para trabajar, entonces con el siguiente código verificamos que este habilitado. Copia y guarda el archivo con un nombre de phpinfo.php y lo ejecutas en tu servidor:
    Código (Text):
    <?php
        phpinfo();
    ?>
    Cuando nuestro servidor soporta conexiones por medio de PDO en phpinfo.php tendremos esta información:
    [​IMG]
    Es importante que en PDO drivers este habilitado para mysql, y ya podremos crear nuestra conexión con la clase PDO usando el siguiente código:
    PHP:
    <?php
            try {
                $conn = new PDO('mysql:host=localhost;dbname=heroesdelaweb','root','passroot');
                echo "Conexión realizada con éxito !!!";
            }
            catch (PDOException $ex) {
                echo $ex->getMessage();
                exit;
            }
    ?>
    En esta linea : $conn = new PDO('mysql:host=localhost;dbname=heroesdelaweb','root','passroot');

    podemos ver que se necesita tres parámetros, los cuales son : DSN, NOMBRE-DE-USUARIO, CONTRASEÑA.
    • DSN: como abreviatura del concepto informático 'Data Source Name'. en el encontramos; 'mysql:host=localhost;dbname=heroesdelaweb' (host=SERVIDOR-BASE-DE-DATOS;dbname=NOMBRE-BASE-DE-DATOS)
    • Nombre de usuario de Base de Datos: por defecto es 'root' y puede ser uno pre establecido.
    • Contraseña de usuario de Base de Datos: en appserv en la instalacion pide como requisito asignar uno, en xampp por defecto viene sin dato o sea vacio si es que no se configura despues de la instalación. Esto depende de que suite de servidor hosting se use.
    Debemos de tener cuidado de que echo $ex->getMessage(); no esté siempre visible, ya que si se presenta un error nuestro usuario de conexión o nuestra contraseña puede ser mostrada, el uso de getMessage() es para que nosotros podamos depurar nuestro código, entonces lo que debemos de hacer es mostrar otro mensaje, quedando nuestro código para ser usado de la siguiente manera :
    PHP:
    <?php
            try {
                $conn = new PDO('mysql:host=localhost;dbname=heroesdelaweb','root','passroot');
                echo "Conexión realizada con éxito !!!";
            }
            catch (PDOException $ex) {
                echo "Sucedio un problema al realizar la conexión !!";
                exit;
            }
    ?>
    Ya con este código tenemos un objeto PDO con el cual podemos empezar a interactuar con la base de datos, pero se estará haciendo uso de nuestro objeto instanciado $conn, para cuando tengan que consultar, actualizar, eliminar, entre otros... puedan usar $conn como objeto instanciado a PDO_MySQL.

    Ejemplo (Select en mysql):
    PHP:
    <?php
    function getFruta($conn) {
        $sql = 'SELECT nombre, color, calorias FROM fruta ORDER BY nombre';
        foreach ($conn->query($sql) as $row) {
            echo $row['nombre'] . "\t";
            echo $row['color'] . "\t";
            echo $row['calorias'] . "\n";
        }
    }
    ?>
    El resultado del ejemplo sería:

    Manzana rojo 150
    banana amarillo 250
    kiwi cafe 75
    limon amarillo 25
    Naranja naranja 300
    Pera verde 150
    melon rosado 90

    Saludos, Creigthon Lee.
     
    Última modificación: 17 de Enero de 2015
    A charlybinn, gammafp, JTaveras y 3 otros les gusta esto.
  2. AyuukJaay

    AyuukJaay Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    149
    Me gusta recibidos:
    69
    Puntos de trofeos:
    28
    Género:
    Hombre
    Página web:
    Muy buen tuto, de las APIS cual recomiendas, o que ventaja tiene uno sobre otro ?
     
    Última modificación: 18 de Enero de 2015
  3. Maddenamy

    Maddenamy Miembro conocido

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    876
    Me gusta recibidos:
    505
    Puntos de trofeos:
    93
    Ocupación:
    Estudiante
    Localización:
    México
    Página web:
    Buen tutorial, yo en lo personal ya estoy acostumbrado a MySQLi.

    Saludos #maddenamy
     
    A JTaveras le gusta esto.
  4. Side Master

    Side Master
    Moderador

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    257
    Me gusta recibidos:
    208
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Página web:
    El artículo esta muy bien @Creigthon , gracias por compartir esta información que es muy importante para el desarrollador. Saludos. ;)
     
  5. DarioNahuel

    DarioNahuel Nuevo Miembro

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    8
    Me gusta recibidos:
    13
    Puntos de trofeos:
    3
    Género:
    Hombre
    Muy buen tutorial y bien explicado. En mi caso prefiero PDO me siento mas cómodo.
     
  6. Creigthon

    Creigthon
    Moderador

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    181
    Me gusta recibidos:
    110
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Programador analista y Diseñador Gráfico.
    Localización:
    La Serena, Chile
    bueno, PDO_MYSQL posee seguridad adicional en su biblioteca, con ella no es necesario recurrir a un script o codificación para anti-inyection sql, entre otras. Yo recomiendo PDO_MYSQL ya que podemos optar a la biblioteca de POO que amplia PHP en un campo más confiable y con mejor confort.

    saludos, Creigthon Lee.
     
  7. AyuukJaay

    AyuukJaay Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    149
    Me gusta recibidos:
    69
    Puntos de trofeos:
    28
    Género:
    Hombre
    Página web:
    Muchas @Creigthon por tu respuesta, empezare a checarlo porque actualmente ando Mysqli.
    Excelente dia
     
  8. Noe_tj

    Noe_tj Miembro

    Se incorporó:
    7 de Enero de 2015
    Mensajes:
    73
    Me gusta recibidos:
    33
    Puntos de trofeos:
    18
    Género:
    Hombre
    Ocupación:
    Desarrollador Web
    Localización:
    Tijuana B.C, México
    Página web:
    Muchas gracias por compartir este tutorial esta muy bien explicado, saludos
     
  9. griselcesar

    griselcesar Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    135
    Me gusta recibidos:
    61
    Puntos de trofeos:
    28
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Venezuela
    Página web:
    Interesante... Aplicaré esto en un futuro
     
  10. uninformatico

    uninformatico Nuevo Miembro

    Se incorporó:
    6 de Abril de 2015
    Mensajes:
    2
    Me gusta recibidos:
    0
    Puntos de trofeos:
    1
    Género:
    Hombre
    ando aprendiendo a usar PDO y esto me ha servido para empezar ! gracias
     

Comparte esta página