Foros del Web » Programando para Internet » PHP »

importar a una bd desde php

Estas en el tema de importar a una bd desde php en el foro de PHP en Foros del Web. hola buenas soy nuevo aca y queria ver si podian ayudarme, tengo un sitio que necesito se actualice la bd automaticamente y diariamente: tengo un ...
  #1 (permalink)  
Antiguo 11/01/2016, 15:09
 
Fecha de Ingreso: enero-2016
Ubicación: cumana
Mensajes: 2
Antigüedad: 8 años, 3 meses
Puntos: 0
importar a una bd desde php

hola buenas soy nuevo aca y queria ver si podian ayudarme, tengo un sitio que necesito se actualice la bd automaticamente y diariamente:
tengo un codigo en el CRON JOB del servidor que ejecute diariamente que reza asi...
php home/caudo/www/actualizar_bd.php

y el codigo de la pagina actualizar_bd.php es:

<?php
//base de datos
include("conectar_bd.php");


$sql = "LOAD DATA LOCAL INFILE 'Aporte.csv' REPLACE INTO TABLE `aporte` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' ";

$rec = mysql_query($sql) or die(mysql_error());



?>
es una importacion a la Bd con un archivo que se llama Aporte.csv que esta alla en el servidor, lo cierto es que se me estan triplicando los registros de la bd...no se que falla??? algo en el codigo...de antemano gracias.........
  #2 (permalink)  
Antiguo 11/01/2016, 15:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: importar a una bd desde php

¿Antes de insertar datos te aseguras de borrar la base de datos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/01/2016, 15:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: importar a una bd desde php

Cita:
lo cierto es que se me estan triplicando los registros de la bd...no se que falla
Pues lo que falla es simple: LOAD DATA ... REPLACE es un comando sumamente peligroso, el cual se debe usar únicamente si tienes la absoluta seguridad de que los datos que se insertan NO EXISTEN en la tabla destino. Esto implica que entre los campos debe existir al menos uno que se corresponda con la clave primaria de la tabla destino.
SI los datos que se insertarán no pueden con sus propios valores, autoexlcuirse de la inserción, por violar una constraint en tabla, entonces el método NO SIRVE.

¿Se entiende?

La BBDD no funciona por telepatía. Sólo puede evaluar restricciones establecidas de forma específica, para asegurar que los datos sean consistentes, y es obvio que tu fuente de datos no las provee.

Usualmente en casos como ese lo que se hace es cargar todos los datos a una tabla transaccional temporal, usando el LOAD DATA, y luego ejecutar procesos específicos para normalizar y validar los datos antes de insertarlos en sus tablas destino finales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:06.