Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    49

    strano comportamento quary update con php

    In un script php faccio un quary di update, non ho nessuna rilevazione di errore ma il quando cotrollo la tabella del DB è come se la query non fosse mai stata esequita.
    Codice:
    $quary="UPDATE principaledb.articolo a SET a.disegno='".$nome_disegno."' , a.programma='".$nome_programma.

    "' WHERE a.idarticolo='".$output['MAX(idarticolo)']."';";

    echo $quary;

    if ($risultato = mysql_query($query)){

    echo'tutto fatto';

    }

    e questo è quello che vedo in output:

    UPDATE principaledb.articolo a SET a.disegno='D:/disegni/draw-30.jpg' , a.programma='D:/programmi/sftw-30.jpg' WHERE a.idarticolo='30'; tutto fatto

    però se esequo la stessa quary dal mysql quart browser il risulatoto è quello desiderato, ovvero mi aggiorna i due campi.
    Nota: potrebbe essere inrilevante ma nello stesso script faccio una quary di insert, se essa va a buon fine allora eseguo la quary di update.
    Ciao a tutti

  2. #2
    Hai controllato la correttezza di eventuali transazioni?

    Hai abilitati tutte quante le tipologie di errore?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    49
    si, non trovo incoerenze, infatti la quary viene eseguita da terminale.

    si,non posso verificare perchè non ho accesso diretto alla macchina ma chi lo gestisce mi dice che sono tutti abilitati.

  4. #4
    Per transazioni intendo quelle aperte in altre query, precedentemente. Non quelle eventualmente aperte nella stessa esecuzione di mysql_query.

    Anche se non hai il controllo della macchina puoi abilitare tutti gli errori con l'istruzione

    Codice PHP:
    error_reporting(E_ALL); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    49
    no non mi ritorna nessun errore anche se aggiungo il comando che mi hai postato, l'output è sempre lo stesso.

    Allora la successione delle istruzioni è questa:
    mi connetto al DB
    insert su tabella articolo
    poi SELECT MAX(idarticolo) from principaledb.articolo a;
    dopo di che ho il codice che ho postato prima. Tutte le query vanno a buon fine e mi danno un esito coerente con quello che mi aspetto tranne l'ultima cioè la quary di update incriminata.

  6. #6
    forse tra l'insert e l'update devi inserire una commit.

    Ciao
    annunci gratuiti
    www.disuso.com

    annunci
    www.abcannunci.it

  7. #7
    codice:
    SELECT * FROM principaledb.articolo a WHERE a.disegno='D:/disegni/draw-30.jpg'
    Se esegui questa query subito dopo "ecco fatto" e ti fai ritornare il risultato vedi se effettivamente esegue la query o no.
    Codice PHP:
    $sql "SELECT * FROM principaledb.articolo a WHERE a.disegno='D:/disegni/draw-30.jpg' AND a.idarticolo='".$output['MAX(idarticolo)']."'";
    $res mysql_query($sql$con);
    if( 
    mysql_num_rows($res) )
       echo 
    "C'è qualche transazione che ti blocca";
    else
       echo 
    "No, non va così. La query non viene neanche eseguita"
    Io sospetto di transazioni lasciate a metà.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    49
    Chiedo venia...però anche voi mi avete depistato...

    $quary="UPDATE principaledb.articolo a SET a.disegno='".$nome_disegno."' , a.programma='".$nome_programma. "' WHERE a.idarticolo='".$output['MAX(idarticolo)']."';"; echo $quary; if ($risultato = mysql_query($query)){ echo'tutto fatto'; }
    la quaruy di update si chima $quary, la quary di che esequo si chiama $query...il problema è che aveco chiamato cosi anche

    $query=SELECT MAX(idarticolo) from principaledb.articolo a
    quindi non dava giustamente errore, l'output a video era corretto ma il risulatato desiderato no...
    chiedo scusa per avervi fatto perdere tempo.
    Grazie ancora

  9. #9


    Capita


    EDIT:

    Ti dò anche un suggerimento. Usa Notepad++ come editor, che in automatico evidenzia tutte le occorrenze delle variabili quando se ne seleziona il nome (selezioni $query e ti mostra evidenziati tutti i punti in cui $query è usata).

    Può esserti utile in questi casi....

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.