PDO PHP

Actualizar registros PDO PHP: Ejemplo Completo

Actualizar registros PDO PHP. Para lograr una actualización de un registro o múltiples registros, tenemos que tener una variable de conexión PDO declarada. además, PDO necesita esa variable para ejecutar consultas SQL e informar los posibles errores en caso de una falla.

Actualizar registros PDO PHP: Pasos

  • Crear una consulta UPDATE correcta
  • Cambiar todos los valores reales enviadas por el formulario con marcadores de posición
  • Preparar la consulta creada
  • Ejecución de la instrucción, enviando todos los valores reales a execute()

Consulta UPDATE usando marcadores de posición posicionales

Los marcadores de posición posicionales son más concisos y fáciles de usar.

Actualizar registros PDO PHP Ejemplo Completo
Actualizar registros PDO PHP Ejemplo Completo

¿Cómo actualizar un solo registro?

Si desea actualizar un solo registro tiene que usar el comando UPDATE y además usar la cláusula WHERE para identificar qué registro actualizar mediante su ID identificador.

PROCESO: Actualizar registros PDO PHP

1) Declarar la consulta SQL regular

Escriba la instrucción de actualización FRECUENTE y en lugar de valores, asigne los marcadores de posición con nombre. Por ejemplo:

$consulta = "UPDATE tbl_personal
SET `nombres`= :nombres, `apellidos` = :apellidos, `profesion` = :profesion, `estado` = :estado, `fregis` = :fregis
WHERE `id` = :id";

2) Preparar la consulta:

En esta parte tenemos que preparar una sentencia para su ejecución y además devuelva un objeto sentencia.

$sql = $connect->prepare($consulta);

3) Enlazar los parámetros:

Debemos ejecutar una sentencia preparada con parámetros de cambio de nombre y devuelve TRUE en caso de éxito o FALSE en caso de algún error.  En este caso usaremos bindParam para poder asignar si es cadena de texto, entero, etc.

$sql->bindParam(':nombres',$nombres,PDO::PARAM_STR, 25);
$sql->bindParam(':apellidos',$apellidos,PDO::PARAM_STR, 25);
$sql->bindParam(':profesion',$profesion,PDO::PARAM_STR,25);
$sql->bindParam(':estado',$estado,PDO::PARAM_STR,25);
$sql->bindParam(':fregis',$fregis,PDO::PARAM_STR);
$sql->bindParam(':id',$id,PDO::PARAM_INT);

4) Definir los valores enlazados

Asignamos variables para recoger la información enviada por el formulario o información estática si amerita el caso. Sin embargo, esta información será procesada con el bindParam.

////// Informacion enviada por el formulario /////
$id=trim($_POST['id']);
$nombres=trim($_POST['nombres']);
$apellidos=trim($_POST['apellidos']);
$profesion=trim($_POST['profesion']);
$estado=trim($_POST['estado']);
$fregis = date('Y-m-d');
////// Fin informacion enviada por el formulario ///

5) Ejecute la consulta:

El siguiente proceso ejecuta una sentencia preparada y si todo esta correcto será enviada a la base de datos.

$sql->execute();

6) Compruebe que la consulta se ha realizado y que la base de datos se ha actualizado correctamente.

Por último, nos apoyaremos en rowCount(), recordemos que esta instrucción devuelve el número de filas afectadas por la última sentencia SQL ejecutada. Por lo tanto, en este ejemplo comprobaremos si la consulta realizo alguna modificación en el registro de nuestra base de datos.

if($sql->rowCount() > 0)
{
$count = $sql -> rowCount();
echo "<div class='content alert alert-primary' > 
Gracias: $count registro ha sido actualizado  </div>";
}
else{
    echo "<div class='content alert alert-danger'> No se pudo actulizar el registro  </div>";

print_r($sql->errorInfo()); 
}

7) Mostramos el código completo:

Ahora, mostraremos el código completo para analizarlo de inicio a fin la instrucción de actualización incluida la condicional de envío del método POST.

<?php
if(isset($_POST['actualizar'])){
////// Informacion enviada por el formulario /////
$id=trim($_POST['id']);
$nombres=trim($_POST['nombres']);
$apellidos=trim($_POST['apellidos']);
$profesion=trim($_POST['profesion']);
$estado=trim($_POST['estado']);
$fregis = date('Y-m-d');
////// Fin informacion enviada por el formulario ///

////////////// Actualizar la tabla /////////
$consulta = "UPDATE tbl_personal
SET `nombres`= :nombres, `apellidos` = :apellidos, `profesion` = :profesion, `estado` = :estado, `fregis` = :fregis
WHERE `id` = :id";
$sql = $connect->prepare($consulta);
$sql->bindParam(':nombres',$nombres,PDO::PARAM_STR, 25);
$sql->bindParam(':apellidos',$apellidos,PDO::PARAM_STR, 25);
$sql->bindParam(':profesion',$profesion,PDO::PARAM_STR,25);
$sql->bindParam(':estado',$estado,PDO::PARAM_STR,25);
$sql->bindParam(':fregis',$fregis,PDO::PARAM_STR);
$sql->bindParam(':id',$id,PDO::PARAM_INT);

$sql->execute();

if($sql->rowCount() > 0)
{
$count = $sql -> rowCount();
echo "<div class='content alert alert-primary' >
Gracias: $count registro ha sido actualizado </div>";
}
else{
echo "<div class='content alert alert-danger'> No se pudo actulizar el registro </div>";
print_r($sql->errorInfo()); 
}
}// Cierra envio
?>

CONCLUSIÓN: Actualizar registros PDO PHP

Tenemos que tener presente que el uso con la conexión PDO es más robusta y muy recomendable para establecer una conexión con MySQL.

Otra ventaja seria los caracteres especiales de una consulta, si no escapamos con bind_param  puede ser un terrible agujero de seguridad en nuestras consultas.

Para estos casos podemos utilizar consultas preparadas, las cuales escaparan estos caracteres especiales.

DESCARGAR EL EJEMPLO

A continuación, les dejare el ejemplo completo e incluido la base de datos para que puedan interactuar con la actualización.

 

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

2 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba