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.
Relacionado  Mostrar errores PHP: Ejemplo Completo

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

Relacionado  Actualizar a PHP 7: ¿Porqué hacerlo?

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

Relacionado  Generar avatar con inicial de nombre usando PHP

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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Nestor Tapia

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

Estaremos encantados de escuchar lo que piensas

Deje una respuesta

BaulPHP
Logo
Shopping cart