Tengo un script PHP y estoy insertando valores en una tabla MySQL. Esto funcionaba bien cuando se trataba de unas pocas miles de líneas de datos, pero a medida que aumentaba los datos, solo una parte de los datos se insertaba en la tabla MySQL.
Parece detenerse después de solo unas 6000 filas de datos. Realmente quiero que funcione para 40.000 líneas y luego necesita 160.000 líneas. Tengo que ejecutar el script varias veces para agregar más datos a la tabla.
Soy nuevo en el trabajo con declaraciones SQL y no creo que la forma en que lo configuré sea eficiente.
Algo de mi código:
for($x=0;$x<count($array_athlete); $x++){ $checkuser=mysqli_query($link,"SELECT * FROM `Events_testing2` WHERE `location`='$location' AND `barcode`='$array_barcode[$x]' AND `date`='$date'"); $rowcount=mysqli_num_rows($checkuser); //checks if barcode exists for that user in that location on that date. Inserts data if doesn't already exist. if($rowcount>0){ } else{ $queryInsertUser=mysqli_query($link, "INSERT INTO `Events_testing2` (`eventID`,`location`,`date`,`barcode`,`athlete`,`time`,`Run Points`,`Volunteer Points`,`Gender`,`Gender pos`) VALUES (' ','$location','$date','$array_barcode[$x]','$array_athlete[$x]','$array_time[$x]','$array_score[$x]',' ','$array_gender[$x]','$array_gender_pos[$x]') "); } } Cualquier consejo sobre cómo insertar más filas rápidamente en la base de datos sería apreciado.
Muchas gracias
Insertar por fragmento, como insertar primero 1000 (1 - 1000) y luego los siguientes 1000 (1001 - 2000). De esta manera, no encontrará errores.
Intente establecer el límite de tiempo de php de antemano
<?php ini_set('max_execution_time', '0'); // infinite set_time_limit(0); // infinite /// do your stuff Ver:
http://php.net/manual/en/info.configuration.php#ini.max-execution-time
http://php.net/manual/en/function.set-time-limit.php