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.
// 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.
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);
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. Regreso al contenido
SuperHispanoInstale esta aplicación en su pantalla de inicio para una mejor experiencia