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

    Come programmare lo script per evitare errore "Commands out of sync"?

    ciao a tutti,
    sembra che questo "bug" di mysql http://dev.mysql.com/doc/refman/4.1/...t-of-sync.html possa essere prevenuto organizzando meglio il codice php. purtroppo non ho capito cosa sarebbe da evitare e cosa lo genera.

    mi date una mano?

    ciao,
    jack.

  2. #2
    dove siete, guru?

  3. #3
    UP!

  4. #4
    posta lo script che ti da errore.

    mi era successo di ricevere questo errore che era dovuto all'errata sequenza di comandi. cioe' comandi non eseguiti nel corretto ordine. Se segui il manuale non lo dovresti mai ricevere. Non mi ricordo manco piu' di cosa si trattava, solo che organizzando meglio la sequenza o svuotando il result set spariva.

    Lo beccavo da linea di comando oppure con phpmyadmin e multi queries nella stessa finestra. Non mi risulta dal client php.

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

  5. #5
    il codice è particolarmente complesso.

    riguardo a mysql, nell'ordine c'è:

    - connessione
    - query buffered Select con utilizzo di tutti i risultati
    - query buffered Select con utilizzo risultato (count rows)
    - query unbuffered Select con utilizzo risultato (select max(ip) where ip=x)
    - query unbuffered Insert (Qui da errore)

    potrebbe essere la 3a query, ma non ho capito con quali config php/mysql si verifica.

  6. #6
    prova a bufferizzare la terza query. Quel che mi ricordo era che non potevo fare una certa operazione se prima non avevo svuotato il risultato.

    unbuffered ha dei limiti/diversita' a volte notevoli rispetto ai risultati bufferizzati. Siccome il risultato unbuffered verrebbe perso se non immediatamente utilizzato (intendo prima di una query successiva) giustamente ti vuol dire... "ma che azzo fai? mi chiedi un dato e poi non lo usi?"

    Parlo per quel che mi ricordo. Di certo ho tolto l'unbuffered dal mio repertorio.

    A parte il fatto che mi incazzerei pure io se tu mi facessi una query di questo genere:

    select max(ip) from .... where ip=x



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

  7. #7
    Originariamente inviato da piero.mac
    prova a bufferizzare la terza query. Quel che mi ricordo era che non potevo fare una certa operazione se prima non avevo svuotato il risultato.

    unbuffered ha dei limiti/diversita' a volte notevoli rispetto ai risultati bufferizzati. Siccome il risultato unbuffered verrebbe perso se non immediatamente utilizzato (intendo prima di una query successiva) giustamente ti vuol dire... "ma che azzo fai? mi chiedi un dato e poi non lo usi?"

    Parlo per quel che mi ricordo. Di certo ho tolto l'unbuffered dal mio repertorio.
    ora provo.
    A parte il fatto che mi incazzerei pure io se tu mi facessi una query di questo genere:

    select max(ip) from .... where ip=x


    :maLOL: lascia stare, errore mio. ovviamente la query non è così.

  8. #8
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    A proposito di query buffered... ma vengono salvate nella cache del browser?
    Se eseguo una query buffered e nella pagina successiva la rieseguo, la seconda preleva i risultati dalla cache?

    Grazie

  9. #9
    Originariamente inviato da Graboid
    A proposito di query buffered... ma vengono salvate nella cache del browser?
    Se eseguo una query buffered e nella pagina successiva la rieseguo, la seconda preleva i risultati dalla cache?

    Grazie
    non credo. i risultati vengono bufferizzati con l'indicazione del resource id# che l'ha generato. Con la fine della pagina avviene la chiusura della connessione e i dati del resul set vengono persi.

    La cache e' un'altra cosa. Diciamo in modo semplice che la cache, se gestita, ricorda il risultato di una query e se la stessa query viene ripetuta e non ci sono state variazioni, rende direttamente il risultato ottenuto in precedenza senza interrogare di nuovo il database.

    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.