3 formas para conectarse a MySQL desde PHP
3 formas para conectarse a MySQL desde PHP. Para aprovechar al máximo a MySQL, es muy importante entender cómo conectarse desde su programa php personalizado a la base de datos MySQL.
Este tutorial explica los siguientes tres métodos junto con el ejemplo que tenemos preparado para todos ustedes y el correcto lenguaje PHP, que te explicará cómo iniciar una conexión con base de datos desde PHP a MySQL de una manera dinámica.
3 formas para conectarse a MySQL desde PHP
- Conectar con el servidor usando la extensión mysqli (recomendada)
- Conexión a MySQL mediante el uso de PDO (recomendado)
- Conectarse mediante métodos tradicionales de MySQL (no recomendado)
Para poder realizar debemos de tener un servidor local o un servidor (hosting) alquilado en internet y debe de contar con PHP y MySQL.
Los ejemplos a continuación utilizaremos ejemplos de una base de datos existente. Sin embargo, dejaremos una base de datos para que hagas los ejemplos.
Dato: Todo lo que se explica aquí también funcionará con el gestor de base de datos MySQL.
Crear una base de datos
Primero necesitamos una base de datos y su respectiva tabla, le pondremos de nombre tabla «ALUMNOS» para poder conectarnos. Sin embargo, en este ejemplo veremos 3 simples maneras de hacerlo.
CREATE TABLE `alumnos` ( `id` int(11) NOT NULL, `nombres` varchar(150) DEFAULT NULL, `apellidos` varchar(150) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `alumnos` (`id`, `nombres`, `apellidos`) VALUES (1, 'jorge', 'Bustamante'); ALTER TABLE `alumnos` ADD PRIMARY KEY (`id`); ALTER TABLE `alumnos` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
1. Desde PHP usando la extensión «mysqli»
Un dato a tener en cuenta, en la actualidad la mayoría de servidor ya posee la extensión MySQLi. Por lo tanto, no tenemos que estar haciendo malabares para encontrar dicha extensión. Todo lo que tienes que hacer es realizar las conexiones que mostraremos a continuación.
Cree el siguiente archivo Usando-Mysqli.php en la raíz de nuestro servidor o dentro de una determinada carpeta para que se ajuste a sus necesidades:
<div class="panel-body"> <?php $conn = new mysqli("localhost", "root", "MI_PASSWORD", "MI-DB"); if ($conn->connect_error) { die("ERROR: No se puede conectar al servidor: " . $conn->connect_error); } echo 'Conectado a la base de datos.<br>'; $result = $conn->query("SELECT nombres, apellidos FROM alumnos"); echo "Numero de resultados: $result->num_rows"; $result->close(); $conn->close(); ?> </div>
- MySQLi, iniciará una nueva conexión usando la extensión mysqli. Esta función está siendo muy utilizada y tendrá estos cuatro criterios para su funcionamiento.
- Hostname, donde se ejecuta la base de datos MySQL
- Nombre de usuario, para MySQL
- Password, para acceder a MySQL
- Nombre Base de datos MySQL, para poder interactuar con la información.
- La función de consulta, en la cual mostrara datos existentes en la tabla de la base de datos.
2. Conexión usando PHP MySQL PDO
La extensión Objetos de Datos de PHP ( PDO por sus siglás en inglés) define una interfaz ligera para poder acceder a bases de datos en PHP
Crear el siguiente archivo Usando-PDO.php en la carpeta que esté realizando la conexión con el servidor:
<div class="panel-body"> <?php /* Conectar a una base de datos invocando al controlador */ $hostname = 'mysql:dbname=php_conexion;host=localhost'; $usuario = 'root'; $contrasena = ''; try { $conn = new PDO($hostname, $usuario, $contrasena); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo 'Se ha conectado a la Base de Datos.<br>'; $sql = 'SELECT nombres, apellidos FROM alumnos'; print "Nombre de Alumno:<br>"; foreach ($conn->query($sql) as $row) { // Imprime datos de MySQL print "<b>".$row['nombres']."</b> <b>".$row['apellidos']."</b><br>"; } $conn = null; } catch(PDOException $err) { // Imprime error de conexión echo "ERROR: No se pudo conectar a la base de datos: " . $err->getMessage(); } ?> </div>
3. Conéctese en la forma antigua MySQL (No recomendada)
Hay que tener en cuenta que si tenemos activado la versión del PHP v7.0 y/o superiores, este tipo de conexión no funcionara, porque esta versión ya desconoce las funciones de mysql_connect.
Esta extensión de conexión fue obsoleta a partir de la versión de PHP 5.5. Sin embargo, a partir de la versión de php 7.0 hacia adelante, esto ni siquiera se reconocerá, ya que fue eliminado por completo.
Cree el siguiente archivo Usando-MySQL.php en su directorio de trabajo:
<?php // Datos para acceder a MySQL $conn = mysql_connect('localhost', 'root', ''); mysql_select_db("php_conexion"); //Muestra error si no son las credenciales correctas if (!$conn) { die('ERROR: No se pudo conectar con el servidor: ' . mysql_error()); } echo 'Se ha conectado con la database.<br>'; $result = mysql_query('SELECT nombres, apellidos FROM alumnos'); // Devuelve resultados de la base de datos $row = mysql_fetch_row($result); // Imprime resultados con echo echo "Alumno 1: ". $row[0]." ".$row[1]." <br>"; mysql_close($conn); ?>
CONCLUSION Y RECOMENDACION
Ya hemos mostrado los tres tipos de conexión y ustedes elijan el mejor que se adapte para ustedes, recuerden que la tercera conexión no está disponible si tienen la versión del PHP actualizado.
Para que no tengan problema más adelante, recomendamos que se utilice el método de MySQLi y el método de PDO. Por lo tanto les dejo para que lo analicen y puedan dejar su comentario.
Hola , excelente simple y claro , solo una duda , me he descargado el «proyecto» pero no me aplica las CSS ni ningún formato visual , sabes porque ?
Gracias
Hola Mancino,
El efecto visual es gracias a la libreria Bootstrap, si no te sale es porque la libreria no esta declarada correctamente al script.
Saludos
Mas claro, no canta un gallo, excelente aporte, de verdad que me ayudo mucho, muy agradecido
gracias, muy buena explicacion
Excelente,
Gracias por tu comentario vladimir!
Buenos dias, aunque soy novato en esto me interesa mucho el lenguaje de programacion php
Qué bien que te interese, este lenguaje de programación es muy divertido. Yo creo que con perseverancia lograras aprender y llegar muy lejos.
Saludos francisco.