¿Cómo consultar datos en base de datos con php, Mysql y PDO?

Consultar MySql con PHP y PDO

En este artículo explicaremos específicamente la conexión PDO PHP para poder conectar php con MySQL dentro de un entorno de desarrollo.


¿Qué es PDO?

La extensión Objetos de Datos de PHP (PDO por sus siglas en inglés) define una interfaz ligera para poder acceder a bases de datos en PHP. Cada controlador de bases de datos que implemente la interfaz PDO puede exponer características específicas de la base de datos, como las funciones habituales de la extensión.

Recordemos que PDO es paecido en muchos aspectos a la conexión MySQLi. Sin embargo, es mejor trabajar con este tipo de conexión por las siguientes razones que detallamos a continuación.

  • Es una extensión que está mejor protegido contra los piratas informáticos (Hackers).
  • Está orientado a objetos en su núcleo.
  • La compatibilidad entre muchas bases de datos, por lo que nos permite trabajar con la base de datos MySQL, así como con otros tipos de bases de datos como ser: SQLite, Oracle, PostgreSQL, etc.

¿Qué necesitamos para conectarme a la base de datos?

  • Nombre del servidor
  • Nombre de la base de datos
  • Nombre del usuario
  • Contraseña del usuario
$dsn = 'mysql:host=nombre_host;dbname=nombre_base_de_datos;charset=utf8mb4';
$usuario = 'nombre_usuario';
$contraseña = 'contraseña_usuario';

try {
    $pdo = new PDO($dsn, $usuario, $contraseña);
    // Configurar el modo de errores para lanzar excepciones en caso de fallos
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Error al conectarse a la base de datos: ' . $e->getMessage();
    exit();
}

 Ahora realizamos la consulta

1. Preparar y ejecutar una consulta segura utilizando parámetros vinculados:

$consulta = 'SELECT columna1, columna2 FROM tabla WHERE columna3 = :valor';
$valor = 'valor_deseado';

try {
    $stmt = $pdo->prepare($consulta);
    $stmt->bindParam(':valor', $valor);
    $stmt->execute();
    
    // Obtener los resultados
    $resultados = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Hacer algo con los resultados
    foreach ($resultados as $fila) {
        // Acceder a los valores de las columnas
        $columna1 = $fila['columna1'];
        $columna2 = $fila['columna2'];
        
        // Hacer algo con los valores obtenidos
    }
} catch (PDOException $e) {
    echo 'Error al ejecutar la consulta: ' . $e->getMessage();
    exit();
}

En este ejemplo, utilizamos una consulta preparada con el marcador de posición :valor para el valor que se desea buscar en la columna3. Luego, vinculamos ese valor a través del método bindParam antes de ejecutar la consulta con execute(). Esto asegura que el valor proporcionado sea tratado como un dato y no como parte de la consulta SQL, evitando así la posibilidad de una inyección SQL.

Recuerda que este es solo un ejemplo básico y que puedes adaptarlo según tus necesidades, agregando más condiciones a la consulta o manipulando los resultados obtenidos.

Comentarios