Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    [MySql] Codici di ritorno di una insert

    Ciao a tutti,
    da poco tempo ho cominciato ad usare MySql (con Php) dopo aver avuto esperienza di parecchi anni in Oracle e, come naturale, mi sono scontrato con i primi problemi, probabilmente dovuti alla inesperienza su questo data base.
    Premetto che ho letto la guida MySql di Html.it (tra l'altro ben fatta, davvero), ma non sono riuscito a trovare il modo (e la lista completa) di "catturare" il messaggio dopo una istruzione di insert.
    La mia intenzione è quella che, dopo aver effettuato una insert da forminse.php, faccio una redirect sulla stessa pagina passando come variabile il messaggio di ritorno dell'istruzione di insert, e quindi indico all'utente se l'operazione è andata a buon fine o meno. (eventualmente codificandomi i messaggi di errore - in varie lingue - in un file esterno)

    Spero di essere stato chiaro e se era già stata aperta una discussione di questo tipo, scusate in anticipo.

    Grazie
    Ciao

  2. #2

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da piero.mac
    vedi mysql_affected_rows()

    http://it.php.net/manual/en/function...ected-rows.php
    Grazie per l'utilissimo link.


  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    La guida a mysql non si occupa di php, per cui non potevi sicuramente trovare quello che cerchi, che peraltro non esiste. A seguito di una insert, mysql_query() restituisce true o false, a seconda che l'esito sia positivo o meno.
    Un'usanza diffusa è quella di completare l'istruzione con "or die(mysql_error())", che in caso di errore blocca lo script segnalando il problema, e che è consigliabile usare con qualsiasi tipo di istruzione inviata al server mysql. Dopodiché, se il tuo script va avanti sei sicuro che è tutto ok

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da luca200
    La guida a mysql non si occupa di php, per cui non potevi sicuramente trovare quello che cerchi, che peraltro non esiste. A seguito di una insert, mysql_query() restituisce true o false, a seconda che l'esito sia positivo o meno.
    Un'usanza diffusa è quella di completare l'istruzione con "or die(mysql_error())", che in caso di errore blocca lo script segnalando il problema, e che è consigliabile usare con qualsiasi tipo di istruzione inviata al server mysql. Dopodiché, se il tuo script va avanti sei sicuro che è tutto ok
    Grazie per la risposta, però non ho capito bene come e se è possibile implementare quello che vorrei fare io
    Ovvero, schematicamente (e semplicemente)

    File Principale: form.inc.php
    presenta questo schema

    codice:
    include("msgerro.inc.php");
    ...
    <form name="news" action="include/form_ins.php" method="POST">
    ...
    </form>
    File per inserimento: form_ins.php
    Dopo la insert, vorrei fare un qualcosa del genere (che chiaramente non funziona, ma serve solo per far capire quello che vorrei fare)
    codice:
    header( "Location: ../form.inc.php?message=mysqli_affected_rows($link)" );
    e quindi nella msgerro.inc.php, "catturare" semplicemente il valore di "message" e indicarlo nella form all'utente.

    Pensate che sia possibile e se si come?
    Grazie

    ps. scusate nel caso l'intervento sia banale o se sono argomenti già trattati ampiamente in questa sezione.

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Codice PHP:
    mysql_query($query_di_inserimento$conn) or die(mysql_error());
    header("Location: '../form.inc.php?message=Inserimento effettuato'" ); 

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da luca200
    Codice PHP:
    mysql_query($query_di_inserimento$conn) or die(mysql_error());
    header("Location: '../form.inc.php?message=Inserimento effettuato'" ); 
    Ok, perfetto.
    Grazie

    Se riesco a perfezionarla, includendo il motivo dell'eventuale mancato inserimento, posterò di nuovo su questo 3D


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.