Galera seguinte exemplo
Eu gero um arquivo audit de jogos e tenho um script php que pega o arquivo e importa pro mysql
ai exemplo arquivo Audit da data 01/01/2018 ate 05/01/2018 ai quando o faço jogo de novo no dia 06 por exemplo eu peço pra gerar do dia 01/01/2018 ate 06/01/2018 ai o que acontece ao invés dele só adicionar o dia 06 ele esta importando os dias 01/02/03/04/05 e duplicando os dados como fazer pra ele pegar só os novos dados do arquivo?
//conecta com o banco de dados
function connect(){
$retorno = 0;
$conn = new mysqli($this->db_host, $this->db_user, $this->db_password, $this->database);
if ($conn->connect_error) {
echo "=====================================\n";
echo "Connection failed:\n" . $conn->connect_error."\n";
echo "Erro ao conectar com o banco de dados.\n";
}else{
$this->conn=$conn;
$retorno = 1;
}
return $retorno;
}
//busca os csvs da pasta e importa
function list_csv(){
$files = glob("*.csv");
$retorno = 0;
foreach($files as $file) {
if (($handle = fopen($file, "r")) !== FALSE) {
$n=0;
$titulo ="";
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
if($n==0){
$titulo = explode("'",implode("\t", $data)."''''")[1];
}
if($n>2){
$sql="";
$d = DateTime::createFromFormat('Y/m/d h:i A', $data[0]);
$data[0]= $d->format('Y-m-d')."@|,@|".$d->format('H:i:s');
$data[9]=str_replace(",","",$data[9]);
$buy = explode("Buy-In:",$data[3]."Buy-In: ");
$data[3] = $buy[0]."@|,@|".$buy[1];
$pos = strpos(str_replace("$","<",$data[2]),"<");
if(!$pos === false){
$data[2] = substr($data[2],0,$pos)."@|,@|".substr($data[2],$pos);
}else{
$data[2]=$data[2]."@|,@|";
}
$sql_tmp = str_replace("'","\\'",implode("@|,@|", $data));
$sql.=str_replace("@|","'",$sql_tmp);
$sql = "insert into audit values('".$titulo."','".$sql."');";
//echo $sql."\n";
$this->connect();
if (!$this->conn->query($sql) === TRUE) {
echo "Error: " . $sql . "<br>" . $this->conn->error;
}else{
$retorno = 1;
}
}
$n++;
}
fclose($handle);
} else {
echo "Could not open file: " . $file;
}
}
array_map('unlink', glob("*.csv"));
return $retorno;
}