Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nel codice che hai scritto, oltre al problema del doppio inserimento, ci sono anche altri errori.
    Partiamo dall'oggetto della discussione, il doppio inserimento.
    Il problema sta qui:
    Codice PHP:
    $comando="INSERT INTO persons (Nome, Cognome, Età) VALUES ('$nome', '$cognome', '$età')";

    // Qui esegui la query
    $result mysqli_query($conn$comando);

    // qui la esegui di nuovo, da cui il secondo inserimento
    if ( ! mysqli_query($conn$comando) )
        echo 
    "Inserimento fallito"

    O fai
    Codice PHP:
    $result mysqli_query($conn$comando);

    if ( ! 
    $result )
    ... 

    oppure
    Codice PHP:
    // elimini questa riga
    // $result = mysqli_query($conn, $comando);

    // ed esegui direttamente la query nell'if
    if ( ! mysqli_query($conn$comando) )
    ... 

    Altri problemi:
    tu fai questo controllo
    Codice PHP:
    if ( ! $nome && ! $cognome && ! $età 
    dentro questo if ci andrai solo se l'utente non scrive nulla perché dice "Se non hai inserito né il nome, né il cognome, né l'età...", quindi basta che l'utente scriva uno solo di quei dati e per il tuo controllo è tutto ok.
    Se tutti e 3 quei dati sono obbligatori, il controllo corretto è
    Codice PHP:
    if ( ! $nome || ! $cognome || ! $età 
    che vuol dire "Se non hai inserito il nome, oppure non hai inserito il cognome, oppure non hai inserito l'età..."

    Ad un certo punto scrivi
    Codice PHP:
    if( ! $conn )
    {
        
    mysqli_close($conn);
        die(
    "problemi nello stabilire la connessione<br>");

    Se la connessione fallisce, non c'è nessuna connessione da chiudere con mysqli_close(), essendo fallita non è mai stata aperta, se finisci lì dentro, PHP ti mostrerà un errore perché a mysqli_close() stai passando un booleano (false) invece dell'handle ad una connessione.
    Ultima modifica di Alhazred; 18-01-2020 a 13:12

Tag per questa discussione

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.