Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    323

    Passare query concatenate. Problema

    Ciao,
    unisco più query in una. se le separo con un punto e virgola, sia da php che da mysql query browser da errore.

    codice:
    mysql_query("START TRANSACTION;
    			SELECT * FROM sale;
    			SELECT * FROM admin;
    			COMMIT;
    		");
    Da cosa dipende?
    Grazie
    someone told me
    love would all save us
    but how can that be
    look what love gave us

  2. #2
    Io ho lo stesso identico problema e non sono ancora riuscito a risolverlo. Qualcuno ci può aiutare?

  3. #3
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Il php non permette query multiple (separate dal ; ) per problemi di sicurezza.

  4. #4
    E quindi come faccio a fare più query racchiuse tra "BEGIN" e "COMMIT" (una transazione, per intenderci)?

  5. #5
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Per le transazioni non so aiutarti, in generale se hai due query da fare devi seguire due volte mysql_query.

  6. #6
    Il problema è che io devo fare una transazione..

  7. #7
    Originariamente inviato da luffa
    E quindi come faccio a fare più query racchiuse tra "BEGIN" e "COMMIT" (una transazione, per intenderci)?
    - con una query apri la transazione,
    - fai tutte le query interne, una a una
    - con un'altra query chiudi la transazione

    Le query multiple si possono fare con l'estensione mysqli (metodo multi_query() ), ma comunque apertura e chiusura della transazione vanno fatte comunque a parte, credo.

    P.S. Magari era solo un esempio e in qual caso dico un'ovvietà, comunque per fare quelle due semplici SELECT non serve nessuna transazione.

  8. #8
    P.S. Magari era solo un esempio e in qual caso dico un'ovvietà, comunque per fare quelle due semplici SELECT non serve nessuna transazione.
    Apparte il fatto che non ero io, ma poi credo fosse solo un esempio..

    - con una query apri la transazione,
    - fai tutte le query interne, una a una
    - con un'altra query chiudi la transazione
    Mi puoi fare un esempio? Io provato così ma non funziona:
    codice:
    mysql_query("START TRANSACTION;");
    mysql_query("INSERT INTO Tabella ecc..;");
    mysql_query("INSERT INTO Tabella ecc..;");
    mysql_query("COMMIT;");
    Le query multiple si possono fare con l'estensione mysqli (metodo multi_query() ), ma comunque apertura e chiusura della transazione vanno fatte comunque a parte, credo.
    Io non ho mai usato mysqli. In pratica cos'è? Come funziona?

  9. #9
    Originariamente inviato da luffa
    Mi puoi fare un esempio? Io provato così ma non funziona:
    Siccome non sono veggente, dovresti dirmi che errore ti dà, altrimenti non posso aiutarti
    Io non ho mai usato mysqli. In pratica cos'è? Come funziona?
    E' un estensione di PHP5 per sfruttare meglio le nuove funzionalità presenti dal MySQL4.1 in su.
    Funziona come l'estensione mysql, ma puoi usarla anche ad oggetti.

  10. #10
    Siccome non sono veggente, dovresti dirmi che errore ti dà, altrimenti non posso aiutarti
    Nessun errore.. semplicemente si comporta come se il "BEGIN TRANSACTION" e il "COMMIT" non ci fossero!! In altre parole, non tratta le query come una transazione ma come singole query. In altre parole ancora, se la 1a query va a buon fine ma la 2a query va in errore, la prima viene eseguita comunque, anzichè annullarle entrambe!!

    Non so più cosa fare...

    PS: sto usando PHP 5 e MySql 5.

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.