Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    725

    Cambio da Update ad Insert se non si esegue

    Ciao a tutti, in php ho una query che controlla se dei dati ci sono gia in db e se non ci sono fa una insert, altrimenti un update, solo che questa select mi rallenta moltissimo lo script. Posso fare solo l'update e in qualche modo dirgli che se l'update viene fatto su 0 linee significa che la linea non è presente e che faccia la insert?
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  2. #2
    mysql_affected_rows

    ... anche se mi sembra troppo strano che ua select ti rallenti così tanto lo script
    solitamente una select count() è velocissima...
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    725
    Per colpa della select mi sta 40 min per 6.000 record e abbiamo controllato indici e balle varie ed è tutto ok. Comunque senza select sta 25 min, è che sono 3 query annidate tipo. Grazie comunque.

    Ps ma come lo uso cosi:

    codice:
    $query = mysql_query('update...');
    if(mysql_affected_row($query))>0){ }else{ insert }
    va bene anche cosi ???

    codice:
    $query = mysql_query('update...');
    if(mysql_num_rows($query))>0){ }else{ insert }
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  4. #4
    40 minuti per una query su 6000 record?? Non riesco ad immaginarmi uno scenario in cui questo possa essere possibile

    Comunque puoi provare la sintassi INSERT ... ON DUPLICATE KEY UPDATE

  5. #5
    codice:
    $query = mysql_query('update...');
    if(mysql_affected_row($query))>0){ }else{ insert }
    guarda che fai un errore colossale.... mysql_affected_rows() vuole il resource id del link oppure se void prendera' il link corrente utilizzato ma non certo quello che passa mysql_query con un update.

    punta sul insert ... on duplicate key update
    ovviamente i dati che devono essere unici dovranno avere una chiave UNIQUE.



    ps. -- In 40 minuti vado da Asti all'aereoporto di Caselle.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.