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

    Php: gestire un errore in query

    Un saluto:

    espongo il problema spero in maniera chiara:

    ho una piccola tabella mysql con tre soli campi id,codice,data.
    Tramite inserimento codice creo il record poi, in un secondo tempo, sempre attraverso il codice trovo il record e aggiorno la data, ovviamente devo controllare che il campo data sia vuoto altrimenti vuol dire che sto cercando di aggiornare un campo che è già stato aggiornato.
    Codice PHP:
    query "UPDATE `volumi` SET `datausc`='$datausc
    WHERE `isbn` LIKE '
    $isbn' AND `datausc` = ' ';";     

    $pippo=mysql_query($query); 
    $pippo dovrebbe essere "1" se la query va a buon fine ma != "1" se fallisce invece rimane sempre "1" e quindi mi impedisce di gestire l'errore con una funzione successiva.

    Ovviamente datausc è un campo char.

    Con una query di INSERT invece funziona perfettamente.

    Qualche idea ? Magari per aggirare il problema ?

    Grazie in anticipo

    enrico

  2. #2

    Re: Php: gestire un errore in query

    Originariamente inviato da bncrm
    $pippo dovrebbe essere "1" se la query va a buon fine ma != "1" se fallisce invece rimane sempre "1" e quindi mi impedisce di gestire l'errore con una funzione successiva.
    Ma cosa significa?
    Se la query va a buon fine, che errore devi gestire???
    Ad ogni modo, ti consiglio di fare come segue:
    Codice PHP:
    $pippo mysql_query($query) OR DIE("Errore Numero: ".mysql_errno()." - Descrizione: ".mysql_error());
    echo 
    "Query ok"
    Con questa riga di codice in più, vai a sapere quando lo script si blocca per mancata esecuzione della query.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it L'avatar di amosrm
    Registrato dal
    Nov 2012
    Messaggi
    120
    un echo delle query a video sarebbe utile !
    #

  4. #4

    Re: Re: Php: gestire un errore in query

    Originariamente inviato da alcio74
    Ma cosa significa?
    Se la query va a buon fine, che errore devi gestire???
    La query NON va a buon fine, dovrebbe updatare la tabella solo se datausc è vuota altrimenti
    mi dovrebbe restituire l'errore.

    enrico

  5. #5

    Re: Re: Re: Php: gestire un errore in query

    Originariamente inviato da bncrm
    La query NON va a buon fine, dovrebbe updatare la tabella solo se datausc è vuota altrimenti
    mi dovrebbe restituire l'errore.

    enrico
    Ti ho comunque risposto!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6

    Re: Re: Re: Php: gestire un errore in query

    Originariamente inviato da bncrm
    La query NON va a buon fine, dovrebbe updatare la tabella solo se datausc è vuota altrimenti
    mi dovrebbe restituire l'errore.

    enrico
    Sbagli.
    La queri restituisce errore solo se l'hai scritta sbagliata.
    Se invece non updata nessuna riga in tabella perché non trova nessuna datausc vuota, la query è comunque andata a buon fine.

    fai una cosa del genere per rendertene conto:
    Codice PHP:
    query "UPDATE `volumi` SET `datausc`='$datausc
    WHERE `isbn` LIKE '
    $isbn' AND `datausc` = ' '";     

    $pippo=mysql_query($query);

    if (!
    $pippo) {

        echo 
    'errore nella query';

    }
    else {

    if (
    mysql_affected_rows() >0)
            echo 
    'sono state updatati '.mysql_affected_rows().' record';
    else
            echo 
    ' nessun record updatato';



  7. #7

    Re: Re: Re: Re: Php: gestire un errore in query

    Originariamente inviato da philbert
    Sbagli.
    La queri restituisce errore solo se l'hai scritta sbagliata.
    Se invece non updata nessuna riga in tabella perché non trova nessuna datausc vuota, la query è comunque andata a buon fine.
    Si me ne sono accorto che sbaglio ed infatti ho dovuto riscrivere il codice in maniera differente.

    Detto questo "filosoficamente" se metto una condizione per effettuare un update e questa condizione non si verifica il sitema dovrebbe restituirmi un qualcosa di diverso da "tutto ok" !!

    Grazie a tutti per l'aiuto.

    enrico

  8. #8

    Re: Re: Re: Re: Re: Php: gestire un errore in query

    Originariamente inviato da bncrm
    Detto questo "filosoficamente" se metto una condizione per effettuare un update e questa condizione non si verifica il sitema dovrebbe restituirmi un qualcosa di diverso da "tutto ok" !!
    Torno a ribadire: se metti un DIE successivo alla funzione mysql_query, con associato il numero e la descrizione dell'errore dell'errore mysql, gestisci la restituzione di un messaggio di errore.
    Come poi ti ha suggerito philbert, con mysql_affected_rows() verifichi che la query di UPDATE abbia effettivamente agisto su un numero di record maggiore o uguale a 1!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9

    Re: Re: Re: Re: Re: Re: Php: gestire un errore in query

    Originariamente inviato da alcio74
    Torno a ribadire: se metti un DIE successivo alla funzione mysql_query, con associato il numero e la descrizione dell'errore dell'errore mysql, gestisci la restituzione di un messaggio di errore.
    Come poi ti ha suggerito philbert, con mysql_affected_rows() verifichi che la query di UPDATE abbia effettivamente agisto su un numero di record maggiore o uguale a 1!

    Grazie della dritta.
    Ho infatti risolto in maniera simile a quella da te descritta.

    Grazie anche a tutti gli altri.

    enrico

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 © 2024 vBulletin Solutions, Inc. All rights reserved.