Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Foreach... insert si blocca con troppi record

    Ciao a tutti,

    ho il seguente ciclo che mi fa un insert in una tabella:

    Codice PHP:
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
        
        
    $utenti$_POST['utenti_idutenti'];
        
    $ore $_POST['ore'];
        
    $seminario$_POST['SemConcat'];

    foreach (
    $utenti as $key => $value){
        
    $ext[] = "('idfrequenze','$ore[$key]','$value','$seminario[$key]','','')";
    }
    $ext implode(',',$ext);
    // echo $ext; }
        
      
    $insertSQL "INSERT INTO frequenzeswap Value $ext ;"

    Oltre il centinaio di record si impalla... any suggestion ?

    Nik

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se capita in base al numero di inserimenti potrebbe essere che lo script impieghi troppo tempo e vada in timeout.

  3. #3
    Ciao Alhazred, si è cosi

    Ho provato a inserire un usleep(20000) ma continua a darmi errore

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Uno sleep non è che migiori le cose, anzi, allunga i tempi di esecuzione.
    Se hai accesso alle impostazioni del server aumenta il tempo che intercorre prima del timeout, altrimenti fa gli inserimenti in più riprese.

  5. #5
    Ah no, non è un timeout del server Alhazred, il messaggio di errore viene dato subito - è un problema legato alla quantita dei record da inserire(fino a 200 no problem, oltre crash)

    Ho provato ad inserire un ritardo (pausa) nella esecuzione dell'inserimento successivo x quello tentavo con usleep ma non risolve

    Potrebbe essere legato al buffer di memoria del ciclo? Foreach tiene tutti i record in memoria prima di fare l'insert o li prende e inserisce uno ad uno ?
    Ultima modifica di nicemotion; 21-11-2018 a 14:05

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ma scusa, ti appare un messaggio d'errore, scrivi qui cosa dice che magari si capisce qualcosa.

  7. #7
    Non è un errore php, mi da l'echo previsto per quando nn ci sono record selezionati..
    comunque sto aggirando il problema ed esporto la lista in 2 trances per il momento; poi quando ho tempo approfondisco e trovo una soluzione piu elegante
    Grazie comunque per l'attenzione
    Nik

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.