Vaya al Contenido

PHP Actualizar Datos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Actualizar Datos en una Tabla MySQL con PHP


Al trabajar con bases de datos, es común tener que actualizar registros existentes. PHP ofrece diferentes maneras de realizar esta operación usando MySQLi y PDO. En este artículo, veremos cómo actualizar registros en una base de datos MySQL utilizando ambas extensiones.

La Sentencia SQL UPDATE


La sentencia UPDATE se utiliza para modificar los registros existentes en una tabla. Es fundamental incluir la cláusula WHERE para especificar qué registros deben ser actualizados. Si omites la cláusula WHERE, ¡todos los registros de la tabla serán modificados!

Sintaxis Básica


UPDATE nombre_tabla SET columna1 = valor1, columna2 = valor2, ... WHERE columna = valor;

Ejemplo de Tabla: empleados


Supongamos que tienes una tabla llamada empleados con los siguientes datos:

Tabla Empleados
id nombre apellido email fecha_registro
1 Carlos Perez carlos@ejemplo.com 2023-05-01 14:26:15
2 Ana García ana@ejemplo.com 2023-06-12 10:22:30

Objetivo


Queremos actualizar el apellido de la empleada con id=2 a López.

Usando MySQLi Orientado a Objetos


En este ejemplo, usaremos el enfoque orientado a objetos de MySQLi para actualizar un registro.

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";
// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar la conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}

// SQL para actualizar un registro
$sql = "UPDATE empleados SET apellido='López' WHERE id=2";

if ($conexion->query($sql) === TRUE) {
echo "Registro actualizado exitosamente";
} else {
echo "Error actualizando el registro: " . $conexion->error;
}

// Cerrar la conexión
$conexion->close();
?>


Explicación del Código


$conexion->query(): Ejecuta la consulta SQL para actualizar el apellido.
$conexion->error: Muestra el error si ocurre alguno durante la ejecución.

Usando MySQLi Procedural


Si prefieres el enfoque procedural, puedes actualizar registros usando funciones como mysqli_connect() y mysqli_query().

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";

// Crear conexión
$conexion = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conexion) {
die("Conexión fallida: " . mysqli_connect_error());
}

// SQL para actualizar un registro
$sql = "UPDATE empleados SET apellido='López' WHERE id=2";

if (mysqli_query($conexion, $sql)) {
echo "Registro actualizado exitosamente";
} else {
echo "Error actualizando el registro: " . mysqli_error($conexion);
}

// Cerrar la conexión
mysqli_close($conexion);
?>


Explicación del Código


Similar al enfoque orientado a objetos, pero utilizando funciones procedurales. mysqli_query() ejecuta la consulta, mientras que mysqli_error() maneja los errores.

Usando PDO (PHP Data Objects)


PDO ofrece un enfoque más flexible para interactuar con bases de datos, con soporte para múltiples tipos de bases de datos, y proporciona una forma segura de ejecutar consultas SQL.

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";

try {
$conexion = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
// Configurar el modo de error de PDO para que lance excepciones
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// SQL para actualizar un registro
$sql = "UPDATE empleados SET apellido='López' WHERE id=2";

// Preparar la declaración
$stmt = $conexion->prepare($sql);

// Ejecutar la consulta
$stmt->execute();

// Mostrar un mensaje indicando cuántos registros fueron actualizados
echo $stmt->rowCount() . " registros actualizados exitosamente";
} catch (PDOException $e) {
echo "Error: " . $sql . "<br>" . $e->getMessage();
}

// Cerrar la conexión
$conexion = null;
?>


Explicación del Código

stmt->prepare()$: Prepara la consulta SQL para una ejecución segura, protegiendo contra inyecciones SQL.
$stmt->execute(): Ejecuta la consulta preparada.
$stmt->rowCount(): Devuelve el número de registros afectados por la consulta UPDATE.

Consideraciones Importantes



Cláusula WHERE: Asegúrate de incluir la cláusula WHERE en tu consulta para evitar actualizar todos los registros de la tabla.
Validaciones: Siempre valida los datos de entrada antes de realizar una actualización para evitar errores o actualizaciones no deseadas.
Errores y Excepciones: Maneja adecuadamente los errores usando mysqli_error() en MySQLi y bloques try-catch en PDO para capturar excepciones.

Conclusión


Actualizar registros en una base de datos MySQL desde PHP es una tarea común y puede lograrse de diferentes maneras usando MySQLi (orientado a objetos y procedural) o PDO.
Cada método tiene sus ventajas, y la elección depende de las necesidades de tu aplicación. Recuerda siempre usar la cláusula WHERE para evitar modificaciones masivas no intencionadas.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"