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 sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.