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:
Este resultado corresponde a la siguiente 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
.
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á:
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);
Top comments (0)