En este momento estás viendo Probar la conexión de PHP con la base de datos

Probar la conexión de PHP con la base de datos

Combrobar que PHP se conecta con la base de datos y realiza consultas

Si queremos asegurarnos de que PHP puede establecer conexión con mysql y ejecutar consultas a la base de datos, podemos crear una tabla para la prueba con los datos que queramos y realizar consultas sobre esa tabla con una secuencia de comandos PHP. Para hacerlo, tenemos que crear una base de datos y un nuevo usuario mysql con permisos para acceder a ella.

Sumario

  • Consideraciones previas
  • Creamos la base de datos
  • Creamos usuario y le damos permisos
  • Creamos una tabla y añadimos unas lineas de datos
  • Creamos un fichero con el script php
  • Ejecutamos la prueba

Consideraciones previas

Vamos a crear un nuevo usuario con el método de autenticación mysql_native_password para poder establecer conexión con la base de datos de MySQL desde PHP.

Esto lo podemos comprobar, si vamos a hacer las pruebas sobre una base de datos que tengamos previamente con:

use db_nombre;

SELECT user, plugin FROM user;

Y si fuese necesario lo cambiamos con:

UPDATE user SET plugin="mysql_native_password" WHERE user="root";

Y cargamos los cambios:

FLUSH PRIVILEGES;

Con «mysql_native_password», permitimos el acceso con usuario y contraseña de mysql. Aplica un hash a la contraseña antes de enviarla al servidor.

Con la autenticación de «socket Unix» nos permite el inicio de sesión para usuarios registrados en el sistema.

Creamos la base de datos

Crearemos una base de datos denominada «db_pruebas» y un usuario llamado «user_pruebas», pero podemos cambiar estos valores por otros diferentes.

Establecemos conexión con mysql

mysql -u root -p

Introducimos la contraseña.

Y creamos la nueva base de datos,

CREATE DATABASE db_pruebas;

Creamos usuario y le damos permisos

Tenemos que crear un nuevo usuario y concederle privilegios completos sobre la base de datos creada.

Este usuario lo llamaremos «user_pruebas» y usará el modo de autenticación «mysql_native_password».

Definimos la contraseña de este usuario como «pass_pruebas», pero deberíamos cambiarla por una más segura si pensamos reutilizarla.

USE db_pruebas

CREATE USER 'user_pruebas'@'%' IDENTIFIED WITH mysql_native_password BY 'pass_pruebas';

Ahora, debemos darle permiso a este usuario en la base de datos que hemos creado.

GRANT ALL ON db_pruebas.* TO 'user_pruebas'@'%';

De este modo el usuario «user_pruebas», tendrá todos los permisos sobre la base de datos «db_pruebas», pero no tendrá ninguno sobre las otras bases de datos que tengamos en el servidor.

Cerramos la sesión mysql con el usuario actual.

exit

Creamos una tabla y añadimos unas lineas de datos

Probamos si el nuevo usuario tiene los permisos suficientes para iniciar sesión mysql con las credenciales que hemos creado.

mysql -u user_pruebas -p

Con «-p» nos solicitará la contraseña que definimos al crear el usuario «user_pruebas». Una vez logeados, accederemos a la base de datos «db_pruebas».

SHOW DATABASES;
USE db_pruebas;

Para probar las consultas, creamos una tabla a la que llamaremos «tabla_pruebas»

CREATE TABLE db_pruebas.tabla_pruebas (
    item_id INT AUTO_INCREMENT,
    content VARCHAR(255),
    PRIMARY KEY(item_id)
);

Introducimos algunas filas de datos que queramos para hacer las consultas posteriores.

INSERT INTO db_pruebas.tabla_pruebas (content) VALUES ("Estamos comprobando"); 
INSERT INTO db_pruebas.tabla_pruebas (content) VALUES ("si con estas configuraciones"); 
INSERT INTO db_pruebas.tabla_pruebas (content) VALUES ("PHP podrá realizar consultas"); 
INSERT INTO db_pruebas.tabla_pruebas (content) VALUES ("a la base de datos"); 
INSERT INTO db_pruebas.tabla_pruebas (content) VALUES ("FUNCIONA!!!!!!!!!!");

Y consultamos el contenido de la tabla

SELECT * FROM db_pruebas.tabla_pruebas;

Y obtendremos la siguiente salida,

Comprobado que los datos están en la tabla, salimos de mysql

exit

Creamos fichero con el script php

Para verificar que PHP puede conectarse a mysql y realizar consultas, vamos a crear un fichero .php en el directorio web del dominio

El siguiente script .php establece conexión con la base de datos, realiza consultas sobre el contenido de la tabla y presenta los resultados en una lista. Si no funciona, nos dará un mensaje de error. Copia el código a tu fichero «tabla_pruebas.php»

<?php
$user = "user_pruebas";
$password = "pass_pruebas";
$database = "db_pruebas";
$table = "tabla_pruebas";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h1>Resultado Prueba</h1><ol>";
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

Guardamos el fichero y lo cerramos.

Ejecutamos la prueba

Abrimos un navegador y accedemos al servidor web con la ip pública o con el nombre de dominio

http://192.168.1.8/tabla_pruebas.php

Y deberíamos ver una página como la siguiente captura,

Y con estas pruebas nos aseguramos de que PHP se puede conectar con la base de datos MySQL y hacer consultas para mostrar contenidos.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la página de contacto, tienes otro formulario.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.