DEV Community

Cover image for Conectando a una base de datos MySQL desde PHP
TayLorWebK
TayLorWebK

Posted on

Conectando a una base de datos MySQL desde PHP

En este tutorial veremos cómo conectar a una base de datos MySQL desde PHP usando el driver de conección PDO.

Primero debemos asegurarnos de tener MySQL instalado y corriendo en nuestra máquina, generalmente se lo hace desde el panel de control de XAMMP en caso de que lo estés usando.

Luego creamos la base de datos, esto se lo puede realizar desde alguna herramienta UI como phpMyAdmin o directamente desde MySQL Command-Line Client (Cliente de línea de comandos de MySQL) como se muestra a continuación.

> create database covid_bolivia;
> use covid_bolivia;

Con use covid_bolivia seleccionamos la base de datos para trabajar.
Usamos el siguiente script para crear la tabla y llenar unos cuantos datos:

CREATE TABLE departamento (
  id int AUTO_INCREMENT,
  nombre varchar(127) NOT NULL,
  casos int,
  primary key(id)
);
INSERT INTO departamento (nombre, casos) VALUES
('La Paz', 754),
('Oruro', 260),
('Potosí', 183),
('Cochabamba', 1097),
('Chuquisaca', 39),
('Tarija', 58),
('Santa Cruz', 8676),
('Beni', 2511),
('Pando', 65);

Con este script estamos creando una tabla de datos, que consta de: id de tipo auto incremental, nombre de tipo varchar (string de 127 carácteres) y casos de tipo entero. Luego llenamos la tabla con algunos datos, nótese que no es necesario especificar la columna id dado que es auto incrementable.

Conexión con MySQL

Creamos un archivo config.php donde definimos las variables para realizar la conección:

<?php
  $host="locahost";
  $user="root";
  $password="";
  $database="covid_bolivia";
?>

Por defecto, el superusuario es root con el password vacío.
En nuestro archivo principal (index.php) vamos a realizar la conección y hacer una consulta a nuestra base de datos:

<?php
require_once 'config.php';
$conectionString = "mysql:host=$host;dbname=$database";
$pdo = new PDO($conectionString, $user, $password);
$results = $pdo->query("SELECT 'Hola' as saludo;");
$result1 = $results->fetch();
var_dump($result1);
?>

Primero requerimos el archivo de configuración require_once 'config.php';, realizamos nuestra conección con el driver PDO y creamos una nueva instancia de este, hacemos una prueba de conexión realizando una pequeña consulta.
Si todo sale bien y abrimos nuestro index.php, obtendremos lo siguiente:
Prueba de conexión
Este resultado corresponde a la siguiente consulta SQL.
Consulta SQL

Obteniendo Datos

Una vez probada la conexión, podemos continuar con los datos de nuestra tabla, modificamos nuestro index.php.

<?php
require_once 'config.php';
$conectionString = "mysql:host=$host;dbname=$database";
$pdo = new PDO($conectionString, $user, $password);
$results = $pdo->query("SELECT * FROM departamento;");
$result1 = $results->fetch();
var_dump($result1);
$result2 = $results->fetch();
var_dump($result2);
?>

Una consulta del tipo select, consta de 2 partes; la primera, donde realizamos la consulta $pdo->query("SELECT...") y obtenemos los resultados, y la segunda donde vamos sacando los datos de estos resultados $results->fetch();. En el ejemplo obtenemos los resultados pero solo obtenemos los primeros 2 datos, podemos verificarlo abriendo index.php.
Primeros 2 resultados
También podemos obtener todos los resultados de nuestra consulta reemplazando $results->fetch(); por $results->fetchAll();.

$departamentos = $results->fetchAll();
var_dump($departamentos);

Cuyo resultado será:
Todos los resultados
Como podemos ver, esta vez obtenemos los 9 resultados.
También tenemos la opción de "limpiar" los resultados, pues si observamos; los datos vienen duplicados, indexados por números y por claves. Usando la opción PDO::FETCH_ASSOC obtenemos resultados más limpios, el uso es el siguiente:

$departamentos = $results->fetchAll(PDO::FETCH_ASSOC);
var_dump($departamentos);

Ahora los resultados se muestran de la siguiente manera:
Resultados limpios

Top comments (0)