Hola Amigos,
Mi Escenario:
Tengo un problema y he intentado buscar una solución pero aún ando sin resultados positivos.
Tengo una tabla la cual debo actualizar automaticamente desde un archivo en un FTP. Este archivo se crea diariamente y constatemente está introduciendo reportes nuevos (líneas en él) durante el día.
Yo lo tomo, lo leo e inserto cada línea en una tabla de mi BD.
Tengo declarado Primery Key el campo día y hora para evitar reportes duplicados.
Hasta aquí todo funciona correctamente.
Problema:
Al intentar insertar el archivo a las 8 de la mañana por ejemplo, y es el primer intento en el día, se realiza sin problemas.
Si se realiza esta actualización una vez más a las 10 AM, que debe hacerce durante el día, ya que constatemente el archivo agrega nuevos reportes. El archivo por supuesto contine también los reportes que se insertaron a las 8 AM y los nuevos.
Aquí es cuando PDO me devuele un error que ya existen esos reportes. Las líneas que ya tengo en mi BD anteriormente y no puede dupicarse porque son Primary Key.
Error:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
Pregunta:
Cómo puedo chequear en mi BD antes de actualizarla que no existan esos reportes con día y hora para no intentar insertarlos y que PDO me devuelva este error ??
Comentario:
Intenté con un bloque Try, Catch pero asi tido me continua saliendo el mismo error en pantalla.
Código PHP:
try
{
$sql = "INSERT INTO table VALUES (campo_1, etc...)";
}
catch(PDOException $e)
{
$e->getMessage();
}
Por supuesto si quito PDO::ERRMODE_WARNING no me sale el error, pero es porque estoy diciendole que no me lo muestre y lo que quiero es solucionar el intento de insertar antes de que detecte que sería un duplicate entry
Gracias por su ayuda de antemano.