Evitar duplicados al importar MySQL y PHP

Evitar duplicados al importar MySQL y PHP. La mayoría de sistemas web o de escritorio trabajan con importación de registros hacia la base de datos para optimizar los procesos. Sin embargo, el problema que suele presentarse son los registros duplicados.

Para dar solución a estos detalles he preparado este artículo que abordaremos en tema con profundidad y mostraremos dos formas para lograr el objetivo.

Evitar duplicados al importar MySQL y PHP
Evitar duplicados al importar MySQL y PHP

Ejemplo de importación CSV

if (file_exists('temp.csv')) {

$i=0;
require "connection.php";
$handle = fopen("temp.csv", "r");
try {
$import= $db->prepare("INSERT INTO adherence(
dateandtime,
lastname,
firstname,
paidtime,
approvedtime,
notadhering) VALUES(
?,?,?,?,?,?)");
$i = 0; 
while (($data = fgetcsv($handle, 1000, ",", "'")) !== FALSE) {
if($i > 0) {
$data = str_replace('"', '', $data); 
$myDate = date("Y/m/d",strtotime(str_replace('/','-',$data[0])));
$import->bindParam(1, $myDate, PDO::PARAM_STR); 
$import->bindParam(2, $data[1], PDO::PARAM_STR); 
$import->bindParam(3, $data[2], PDO::PARAM_STR); 
$import->bindParam(4, $data[3], PDO::PARAM_STR); 
$import->bindParam(5, $data[4], PDO::PARAM_STR);
$import->bindParam(6, $data[5], PDO::PARAM_STR); 
$import->execute();
}
$i++;
}
fclose($handle);

En el script anterior la importación es un éxito, pero el detalle es evitar registros duplicados al volver ejecutar el script o cargar otro fichero de CSV.

Necesitamos tipo de lógica condicional para verificar si la fila del fichero Excel ya existe en la base de datos antes de importarla y omitirla.

¿Se puede evitar registros duplicados al importar a MySQL?

La respuesta es un sí. Si existe, y en este articulo detallaremos la forma de hacerlo con un ejemplo completo.

Evitar duplicados al importar MySQL y PHP

Básicamente hay dos formas genéricas y diferentes de hacerlos, veamos a continuación los ejemplos.

Primera forma: A través de los rdbms:

Use un índice único en su tabla. Una vez que inserte un duplicado, encontrará un error, que se puede mostrar/registrar/lo que sea correctamente.

Recuerde que. – La restricción UNIQUE en SQL se utiliza para garantizar que no se inserten valores duplicados en una columna específica o combinación de columnas que participen en la restricción UNIQUE.

Segunda forma: Usando la lógica de la aplicación:

Busque la columna que desea insertar y antes de insertarlo use la instrucción SELECT adecuada para buscarlo en la tabla. Si encuentra una coincidencia, no la inserte y continúa validando los demás registros.

Ejemplo:

$sth = $db->prepare("SELECT campo_buscado FROM mitable WHERE condicion= :cond");
$sth->bindParam(':cond',$mivariable, PDO::PARAM_STR);
$sth->execute();

if ($sth->rowCount() > 0) {
// resultado existente - No insertar
} else {
// No hay resultados - insertar registro
}

Conclusión

En la mayoría de las condiciones, los codificadores implementarán la primera forma, ya que reduce el tráfico entre la aplicación y RDBMS y hace que su modelo de datos sea más sólido. Si esto es un problema, intente de la segunda manera.

Me fascina la programación en diversos lenguajes y mas aún si son sistemas web o páginas web.

Entradas relacionadas

Integrar Bootstrap 3 Badge Colors

Integrar Bootstrap 3 Badge Colors

En este artículo vamos a integrar colores de fondo en la clase BADGE de Bootstrap 3. Integrar Bootstrap 3 Badge Colors. En el framework Bootstrap 3 por…

5 formar de validar checkbox

5 formar de validar checkbox

5 formar de validar checkbox. Aquí mostrare varias formas de validar checkbox usando jQuery y JavaScript, también usaremos funciones a nivel de formulario. Aquí debéis fijaros que…

Cómo mostrar ocultar DIV usando CHECKBOX

Cómo mostrar ocultar DIV usando CHECKBOX

Cómo mostrar ocultar DIV usando CHECKBOX?. Lo que haremos será trabajar en un div al hacer clic con el mouse usando jQuery, use el método toggle(). Por…

Enviar formulario usando checkbox

Enviar formulario usando checkbox

Enviar formulario usando checkbox. En este articulo veremos una forma de enviar un formulario HTML usando una casilla o varias casillas de verificación (checkbox). Por lo tanto,…

Limpiar Select2 jQuery

Limpiar Select2 jQuery: Ejemplo completo

Limpiar Select2 jQuery. En este articulo aprenderemos a restablecer para mostrar el marcador de posición select2. JQuery Select2 restablece y luego muestra el marcador de posición. Por…

Array dentro de ciclo Foreach PHP

Array dentro de ciclo Foreach PHP: ejemplo completo

Array dentro de ciclo Foreach PHP. A veces se requiere validar si existe un elemento de un ARRAY dentro de un ciclo While o ciclo foreach en…

Deja una respuesta

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