Lenguaje PHP

Insertar actualizar registros en PHP MySQL

Insertar actualizar registros en PHP MySQL. En una tabla MySQL se puede hacer dos consultas en uno, es decir Insertar y si existe actualizar el registro en una sola consulta SQL.

Insertar actualizar registros en PHP MySQL

Este método nos ayuda a optimizar la consulta como ser:

  • Buscar registro SELECT * FROM TABLA;
  • Insertar Registro en MySQL
  • Actualizar registro SQL

Existe el Insert Update en MySQL

En MySQL existe unas clausulas para poder realizar tal consulta SQL. Es decir, primero verifica la tabla de la siguiente forma:

  • Si no existe el registro en la tabla hace la operación de insertar registro.
  • SI existe el registro solo se limita a actualizar el registro a través de un INDICE.

Si especifica una cláusula ON DUPLICATE KEY UPDATE y la inserción de una fila provocaría un valor duplicado en un índice ÚNICO o CLAVE PRINCIPAL, se produce una ACTUALIZACIÓN de la fila anterior. Por ejemplo, si la columna a se declara como ÚNICA y contiene el valor 1, las siguientes dos declaraciones tienen un efecto similar:

INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

UPDATE t1 SET c=c+1 WHERE a=1;

INSERTAR o ACTUALIZAR DE CLAVE DUPLICADA

que es la de la sentencia REPLACE, la cual su sintaxis es igual que la de insert, la cual en tablas con Auto Increment continúa la numeración.

on duplicate key aplicaría un auténtico update, mientras que REPLACE te haría un DELETE y un INSERT en duplicados. (Lo cual te puede dar un problema si tienes el id en otras tablas como llaves foráneas).

Ambas opciones tienen sus ventajas y desventajas.

Ejemplo de uso

INSERT ... ON DUPLICATE KEY UPDATE

Un ejemplo de consulta SQL seria utilizando lo siguiente:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
name="A", age=19

¿Cuál sería la solución?

La solución más directa seria utilizar la cláusula ON DUPLICATE KEY UPDATE, siempre que la tabla a la cual estas intentando ingresar una fila posea Clave Primaria.

Por ejemplo, vamos a suponer que tenemos la tabla Clientes con los campos: Num, Nombre, Telefono. (Num es Clave Primaria)

INSERT INTO Clientes(Num, Nombre, Telefono) VALUES(1,'Agustin','123456') 
ON DUPLICATE KEY UPDATE Telefono = VALUES(Telefono);

Explicación de la consulta anterior

La cláusula DUPLICATE KEY UPDATE seguida del Campo = y aquí puedes colocar VALUES(Teléfono) para no tener que repetir nuevamente el valor ‘123456’.

Conclusión

En este articulo hemos aprendido a buscar y actualizar registros dentro de una tabla MySQL, todo ello en una consulta SQL de manera dinámica.

Recuerda que se puede implementar estas consultas con un formulario HTML y lenguaje PHP usando métodos como ser: Método POST o Método GET.

Además, es posible integrar a PHP PDO sin inconvenientes.

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!.

Deja una respuesta

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

Botón volver arriba