🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo conectar una aplicación PHP a una base de datos MySQL (Plesk)

Actualizado el 5 de diciembre de 2025

¡Hola! 👋 Soy tu técnico de soporte amigable. Hoy vamos a resolver una de las tareas más comunes (y a veces confusas) cuando empiezas a crear aplicaciones web: conectar PHP con una base de datos MySQL en Plesk.

No te preocupes si nunca has hecho esto antes. Vamos a ir paso a paso, sin prisas, y con ejemplos que puedes copiar y pegar directamente. Al final de esta guía, tendrás tu aplicación hablando con tu base de datos como un experto.


Entendiendo los Componentes: PHP, MySQL y Plesk

Antes de ensuciarnos las manos con código, es importante que sepamos qué es cada pieza de este rompecabezas. Es como preparar una receta: necesitas los ingredientes correctos.

PHP es el lenguaje de programación que se ejecuta en tu servidor web. Es el que genera las páginas dinámicas que ven tus visitantes.

MySQL es el sistema de gestión de bases de datos. Aquí es donde se almacenan los datos de tu sitio: usuarios, productos, publicaciones, etc.

Plesk es el panel de control de tu hosting. Piensa en él como el "cerebro" de tu servidor. Desde aquí gestionas tus dominios, archivos, correos y, por supuesto, las bases de datos.

Para que tu aplicación funcione, PHP necesita saber dónde está MySQL, cómo autenticarse y qué base de datos usar. Eso es exactamente lo que vamos a configurar.


Paso 1: Crear la Base de Datos y el Usuario en Plesk

Lo primero es tener una base de datos con un usuario que tenga permisos para acceder a ella. Si ya la tienes creada, puedes saltarte este paso, pero si no, aquí te explico cómo hacerlo en Plesk.

  1. Inicia sesión en Plesk: Entra en tu panel de control. Normalmente es algo como https://tudominio.com:8443.
  2. Busca la sección de Bases de Datos: En el menú lateral izquierdo, busca el icono de "Bases de Datos" o "Bases de datos MySQL". Haz clic en él.
  3. Añade una nueva base de datos: En la esquina superior derecha, verás el botón "Añadir base de datos". Púlsalo.
  4. Rellena los datos: Te pedirá un nombre para la base de datos. Elige uno descriptivo, como mi_app_db. También te pedirá el usuario y la contraseña. IMPORTANTE: Guarda estos datos en un lugar seguro, los necesitarás en el código PHP.
  5. Tipo de base de datos: Asegúrate de que el tipo sea MySQL.
  6. Crear: Pulsa el botón "Aceptar" o "Crear". ¡Listo! Ya tienes tu base de datos creada.

[TIP] Recuerda que el nombre de usuario y la base de datos suelen tener un prefijo con tu nombre de usuario de Plesk. Por ejemplo, si tu usuario es usuario1, la base de datos podría llamarse usuario1_mi_app_db. Esto es normal y solo significa que esos nombres son únicos en el servidor.


Paso 2: Elegir el Método de Conexión (mysqli vs PDO)

Existen dos formas principales de conectarse a MySQL desde PHP: mysqli y PDO. Ambas son excelentes, pero tienen pequeñas diferencias.

mysqli (MySQL Improved) es una extensión específica para MySQL. Es muy rápida y fácil de usar, perfecta para proyectos sencillos o si sabes que siempre usarás MySQL.

PDO (PHP Data Objects) es una capa de abstracción. Esto significa que el código que escribes para MySQL también funcionaría para otras bases de datos (como PostgreSQL o SQLite). Es más flexible y recomendada para proyectos a largo plazo.

En esta guía, nos centraremos en mysqli, ya que es la opción más común y directa para la mayoría de los principiantes. Te daré ejemplos claros y funcionales.


Paso 3: El Código PHP para Conectar con MySQL (mysqli)

Ahora viene la parte divertida. Vamos a escribir el código que conectará tu aplicación PHP con tu base de datos MySQL en Plesk.

La Conexión Básica

Crea un archivo llamado conexion.php en la raíz de tu proyecto (o donde tengas tu código). Dentro, pega el siguiente código:

<?php
// --- DATOS DE CONEXION (CÁMBIALOS POR LOS TUYOS) ---
$servidor = "localhost";
$usuario = "tu_usuario_de_plesk";
$password = "tu_contraseña_super_secreta";
$base_datos = "tu_nombre_de_base_de_datos";

// --- CREAR LA CONEXION ---
$conexion = new mysqli($servidor, $usuario, $password, $base_datos);

// --- VERIFICAR LA CONEXION ---
if ($conexion->connect_error) {
    die("Error de conexión: " . $conexion->connect_error);
}
echo "Conexión exitosa a la base de datos";
?>

Desglosemos el código:

  • new mysqli(...): Esta línea crea un nuevo objeto de conexión. Los parámetros son, en orden: el servidor, el usuario, la contraseña y el nombre de la base de datos.
  • $conexion->connect_error: Si la conexión falla, esta propiedad contendrá una descripción del error.
  • die(...): Detiene la ejecución del script y muestra un mensaje de error. Esto es útil para depurar, pero en producción deberías manejar el error de forma más elegante.

[WARNING] El servidor suele ser localhost. Sin embargo, en algunos hostings (especialmente en Plesk de servidores dedicados) puede que necesites usar un nombre de servidor específico que te proporciona tu proveedor. Si localhost no funciona, revisa la documentación de tu hosting o el panel de Plesk para ver si hay un nombre de host de base de datos distinto.

Probando la Conexión

Sube el archivo conexion.php a tu servidor (por ejemplo, dentro de la carpeta htdocs o httpdocs de tu dominio) y accede a él desde tu navegador. Por ejemplo: https://tudominio.com/conexion.php.

Si ves el mensaje "Conexión exitosa a la base de datos", ¡felicidades! Has conectado PHP con MySQL en Plesk correctamente.

Si ves un error, revisa los datos que has introducido en las variables. Asegúrate de que el usuario tiene permisos sobre la base de datos.


Paso 4: Realizar Consultas (Select, Insert, Update, Delete)

Conectar es solo el primer paso. Ahora vamos a aprender a interactuar con los datos. Te mostraré un ejemplo de cómo hacer un INSERT (añadir datos) y un SELECT (leer datos).

Insertar Datos en la Base de Datos

Supongamos que tenemos una tabla llamada usuarios con las columnas nombre y email. El código para insertar un nuevo usuario sería:

<?php
// Incluimos el archivo de conexion
require_once 'conexion.php';

// Datos a insertar (normalmente vienen de un formulario)
$nombre = "Juan Pérez";
$email = "juan@example.com";

// Preparamos la consulta SQL
$sql = "INSERT INTO usuarios (nombre, email) VALUES (?, ?)";

// Preparamos la declaracion (statement)
$stmt = $conexion->prepare($sql);

// Vinculamos los parametros. La "s" indica que son strings
$stmt->bind_param("ss", $nombre, $email);

// Ejecutamos la consulta
if ($stmt->execute()) {
    echo "Usuario insertado correctamente";
} else {
    echo "Error al insertar: " . $stmt->error;
}

// Cerramos la declaracion y la conexion
$stmt->close();
$conexion->close();
?>

Puntos clave:

  • prepare(): Prepara la consulta SQL para su ejecución. Es una buena práctica de seguridad porque ayuda a prevenir la inyección SQL.
  • bind_param(): Aquí es donde conectamos las variables PHP con los marcadores ? de la consulta. El primer parámetro ("ss") indica que ambos son strings.
  • execute(): Ejecuta la consulta preparada.

Leer Datos de la Base de Datos

Ahora, veamos cómo obtener datos y mostrarlos. Este ejemplo selecciona todos los usuarios de la tabla y los muestra en una lista.

<?php
// Incluimos el archivo de conexion
require_once 'conexion.php';

// Consulta SQL para seleccionar todos los usuarios
$sql = "SELECT id, nombre, email FROM usuarios";

// Ejecutamos la consulta
$resultado = $conexion->query($sql);

// Verificamos si hay resultados
if ($resultado->num_rows > 0) {
    echo "<h2>Lista de Usuarios</h2>";
    echo "<ul>";
    // Recorremos los resultados
    while ($fila = $resultado->fetch_assoc()) {
        echo "<li>" . $fila["nombre"] . " - " . $fila["email"] . "</li>";
    }
    echo "</ul>";
} else {
    echo "No hay usuarios en la base de datos";
}

// Cerramos la conexion
$conexion->close();
?>

Explicación:

  • query(): Ejecuta una consulta simple sin parámetros.
  • num_rows: Contiene el número de filas devueltas por la consulta.
  • fetch_assoc(): Obtiene cada fila del resultado como un array asociativo, donde los índices son los nombres de las columnas.

Paso 5: Buenas Prácticas y Seguridad

Es crucial que tu conexión sea segura. Aquí tienes algunos consejos esenciales:

Usar Archivos de Configuración

No pongas los datos de conexión directamente en cada archivo PHP. Es mejor tener un archivo config.php con las credenciales y luego incluirlo con require_once.

<?php
// config.php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'tu_usuario');
define('DB_PASSWORD', 'tu_contraseña');
define('DB_NAME', 'tu_base_datos');

// Conexion
$conexion = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

if ($conexion->connect_error) {
    die("Error de conexión: " . $conexion->connect_error);
}
?>

Usar Sentencias Preparadas (Prepared Statements)

Siempre usa sentencias preparadas cuando la consulta incluya datos que vienen del usuario (formularios, URLs, etc.). Esto es fundamental para evitar la inyección SQL, un ataque muy común y peligroso.

Manejo de Errores

En lugar de die(), considera usar try...catch para manejar los errores de forma más controlada y mostrar mensajes amigables al usuario.

<?php
try {
    $conexion = new mysqli($servidor, $usuario, $password, $base_datos);
    if ($conexion->connect_errno) {
        throw new Exception("Error de conexión: " . $conexion->connect_error);
    }
    echo "Conectado correctamente";
} catch (Exception $e) {
    die("Error: " . $e->getMessage());
}
?>

[INFO] La inyección SQL es una técnica de ataque donde un usuario malintencionado introduce código SQL a través de un formulario para manipular tu base de datos. Las sentencias preparadas son la mejor defensa contra esto, así que no lo subestimes.


Paso 6: Solución de Problemas Comunes (FAQ)

Aquí tienes algunas preguntas que suelen hacer los usuarios. Espero que te sean útiles.

"Access denied for user '...'@'localhost'"

Este error significa que el usuario o la contraseña son incorrectos, o que el usuario no tiene permisos sobre la base de datos.

  • Solución: Revisa que el usuario y la contraseña sean exactamente los que creaste en Plesk. Ve a Plesk > Bases de Datos > tu_basededatos, y verifica que el usuario esté asociado a esa base de datos.

"Unknown database '...'"

Este error indica que Plesk no encuentra la base de datos que especificaste.

  • Solución: Verifica el nombre de la base de datos. Recuerda que en Plesk suele tener un prefijo. Cópialo directamente desde el panel de Plesk para evitar errores de escritura.

"Connection refused"

Este error suele indicar que el servidor MySQL no está accesible o que la conexión se está bloqueando.

  • Solución: Asegúrate de que el servidor MySQL está en marcha. En Plesk, ve a la sección de "Herramientas y ajustes" > "Servicios" y verifica que el servicio MySQL esté activo. También revisa el nombre del servidor en tu código.

"mysqli not found" o "Call to undefined function mysqli_connect()"

Este error significa que la extensión mysqli no está instalada o habilitada en tu PHP.

  • Solución: En Plesk, puedes cambiar la versión de PHP o habilitar la extensión mysqli. Ve a Plesk > tu_dominio > "PHP Settings" y busca la opción de extensiones. Asegúrate de que mysqli esté activada.

¿Cómo conecto desde otra máquina?

Por defecto, la conexión a MySQL está limitada a localhost por seguridad. Si necesitas conectarte desde otro servidor, tendrás que configurar el acceso remoto en Plesk. Esto es más avanzado y requiere ajustar los hosts permitidos del usuario de la base de datos.


Conclusión y Siguientes Pasos

¡Excelente trabajo! Has aprendido a conectar PHP con MySQL en Plesk. Has creado tu base de datos, escrito el código de conexión, realizado consultas y aprendido buenas prácticas de seguridad. Este es un hito fundamental en el desarrollo web.

Ahora puedes empezar a construir aplicaciones más complejas. Te sugiero:

  1. Practicar con las consultas UPDATE y DELETE.
  2. Crear un formulario que envíe datos a tu base de datos.
  3. Aprender sobre PDO, que es una alternativa más avanzada y flexible a mysqli.

Si te has quedado con ganas de más, puedes explorar cómo conectar tu base de datos a otros lenguajes o cómo optimizar tus consultas para que tu sitio sea más rápido.

[TIP] Si en algún momento usas un panel de control como Syspanel (recuerda, el acceso es por el puerto 2106), los conceptos son exactamente los mismos. Solo cambia la interfaz gráfica, pero la lógica de crear una base de datos y usar sus credenciales en tu código PHP es universal.

Espero que esta guía te haya sido de gran ayuda. Si tienes alguna duda, no dudes en dejar un comentario o contactar con nuestro soporte técnico. ¡Estamos aquí para ayudarte a construir cosas increíbles! 🚀

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel