Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    query concatenate in un'unica variabile

    Salve, sto provando ad eseguire queste queries:
    Codice PHP:
    $queries "UPDATE " $this->_prefix "tree
                                      SET sx = ( sx + 2 ) 
                                    WHERE sx >= 
    {$newSx};
                                   UPDATE " 
    $this->_prefix "tree
                                      SET dx = ( dx + 2 )
                                    WHERE dx >= 
    {$newDx};
                                   INSERT INTO " 
    $this->_prefix "tree 
                                        VALUES ( NULL,
                                                 
    {$newSx},
                                                 
    {$newDx} );
                                   INSERT INTO " 
    $this->_prefix "details 
                                        VALUES ( NULL,
                                                 " 
    mysql_insert_id() . ",
                                                 
    {$nome} );"
    Ma mi viene restituito questo errore:
    Errore di sintassi nella query SQL vicino a '; UPDATE catalog_tree SET dx = ( dx + 2 ) ' linea 3
    L'errore è il numero 1064

    Io l'errore non riesco a trovarlo. Ci riuscite voi? Grazie mille! ciao!

  2. #2
    Domanda uno.... farai mica quattro query una nelle chiappe all'altra?

    due.... le stringhe vanno tra apici.


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

  3. #3
    Non ho capito la domanda 1.

    A parte la sintassi di alcune query (alle quali lo script non è proprio arrivato) credo che l'errore siano i ";".
    PhpMyAdmin pure li usa ma non è che fa un explode dei ";" ed esegue poi le query contenute nell'array ricavato?

    Lo dico perchè studiando un metodo di una classe mi sono accorto che il procedimento usato è proprio questo. Non converrebbe, allora, fare direttamente l'array facendo qualcosa tipo:

    $query[] = "comandi della query";
    $query[] = "comandi della query";
    $query[] = "comandi della query";

    e poi passare tutto ad una funzione che scorre l'array ed esegue le varie query?

  4. #4
    La differenza tra phpmyadmin e php e' che phpmyadmin esegue le query da linea di comando e quindi esegue tutte le query che gli metti nella finestra purche' siano separate da un ;

    php esegue le query tramite la funzione mysql_query che ne esegue solo una alla volta. A meno che non si tratti di query multiple... ma multiple per mysql e non multiple per php.

    Di solito si fa cosi'... si mettono le query in un array e poi si scorre l'array con un foreach passando via via le stringhe a mysql_query che le eseguira' appunto una alla volta.


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

  5. #5
    E se poi una delle query fallisce? E' possibile ripristinare il tutto? Devo eseguire altre query che riportino il db allo stato precedente o esistono delle funzioni apposta?

    Perchè andr3a nella sua classe per i nested sets utilizza la funzione mysql_free_result( $query ); ma non mi sembra che funzioni :master:

  6. #6
    Originariamente inviato da mircov
    E se poi una delle query fallisce? E' possibile ripristinare il tutto? Devo eseguire altre query che riportino il db allo stato precedente o esistono delle funzioni apposta?

    Perchè andr3a nella sua classe per i nested sets utilizza la funzione mysql_free_result( $query ); ma non mi sembra che funzioni :master:
    dovresti utilizzare le transizioni con le tabelle innodb...

    COMMIT e ROLLBACK da utilizzare a seconda se tutto e' andato OK oppure no.

    A parte che il dubbio di una query che fallisca o meno esiste anche nel caso che le queries potessero essere concatenate. O usi le transizioni oppure la transizione la gestisci tu...

    Per le classi/funzioni di Andr3a credo sia lui stesso il piu' indicato a spiegarle...


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

  7. #7
    Ho capito. Va bene, grazie mille! Ciao!

  8. #8
    ragazzi ... riuppo sto' 3D ... scusate ...
    allora, GROSSO PROBLEMA ...


    devo dire a MYSQL di accettare 2 query in un banale mysql_query o mysql_unbuffered_query .. queste 2 query sono assolutamente ed indispensabilmente da fare una dietro l'altra ... come caspita si fa ??? ... fagianata grossa ma sto' impazzendo !!!!


    SELECT @myId := id FROM tabella;
    SELECT * FROM tabella2 WHERE p_id = @myId


    questo esempio al limite dello stupido va perfetto in phpMyAdmin ma non c'e' verso di farlo andare in PDO o in semplice mysql e il problema e' che o si ferma all aprima query e mi da l' id che non me ne faccio niente oppure mi da errore ... paura e delirio per me .. aiuto !


    P.S. non fatemi correzzioni sul caca-esempio, sono ben altre le query che sto' facendo e non posso dividerle ...

    P.S2 ... ovviamente in mysql da prompt la query va !!!
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    :rollo:

    SELECT tabella2.* FROM tabella2,tabella WHERE p_id =id

  10. #10
    Originariamente inviato da stabi
    :rollo:

    SELECT tabella2.* FROM tabella2,tabella WHERE p_id =id

    Originariamente inviato da andr3a
    P.S. non fatemi correzzioni sul caca-esempio, sono ben altre le query che sto' facendo e non posso dividerle ...

    P.S2 ... ovviamente in mysql da prompt la query va !!!

    :rollo: :rollo: :rollo: :rollo:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.