Visualizzazione risultati 1 fino 3 di 3

Discussione: Non riesco a scrivere nel database

  1. #1
    Guest

    Predefinito Non riesco a scrivere nel database

    Salve a tutti,
    premetto che non ho molta dimestichezza con PHP ma non riesco a venire capo di una semplice procedura per salvare dei dati sul database.
    Lo stesso codice che posto funziona perfettamente in locale, il "dramma" è che non mi da errori ma quando accedo al db la tabella è vuota...


    Codice:
    						
    
    	
    if($_SERVER['REQUEST_METHOD']=='POST')
    
    echo $dataIns= $_POST['inserimento'];
    
    echo $dataScad= $_POST['scadenza'];
    echo $caus= $_POST['causale'];
    
    echo $descriz= $_POST['descrizione'];
    $scad = date('Y-m-d H:i:s', strtotime(str_replace('/','-',$_POST["scadenza"])));
    
    {	
    	if (isset($_POST['btnAccedi']))
    	
    	
    	
    	
    		
    		//stabilire la connessione		
    		$conn = mysqli_connect("localhost","bustometeo","");
    		
    		if ($conn->connect_errno) {
        echo "Connessione fallita: ". $conn->connect_error . ".";
        exit();
    }
    		
    		//selezionare il db
    		mysqli_select_db($conn,"my_bustometeo");
    		
    		$comandoSQL=" INSERT INTO Tbl_Note (IDNota , DataInserimento, DataScadenza, Causale, Descrizione) VALUES (NULL, '$dataIns', '$datascad' ,'$caus', '$descriz')"or die ("query non eseguita");
    		
    		
    		$risultato= mysqli_query($conn, $comandoSQL);
    			
    			// chiudo la connesione
    			
    			mysqli_close($conn);
    			
    		
    	}
    Qualcuno gentilmente mi può aiutare a capire dove sta l'errore?

    Grazie

    Massimo

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Non stai controllando la presenza di eventuali errori durante l'esecuzione della query. Modifica in questo modo:
    Codice PHP:
    $risultato = mysqli_query($conn, $comandoSQL);
    if (!
    $risultato) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_error($conn));
    }
    Dal codice intuisco che tu creda che questa riga (ometto il testo della query per brevità):
    Codice PHP:
    $comandoSQL = "INSERT INTO Tbl_Note..." or die ("query non eseguita");
    controlli anche che l'interrogazione venga eseguita o meno. Non è affatto così che funziona. In quella riga stai semplicemente assegnando una stringa ad una variabile, PHP non ha assolutamente modo di sapere che successivamente userai quella stringa come testo di un'interrogazione alla base di dati, quindi non è in grado di dirti se la query verrà o meno eseguita.
    L'or die(...) viene eseguito "quando un'istruzione fallisce", in questo caso verrebbe eseguito solo se l'assegnamento fallisse, non in caso di problemi con l'interrogazione.
    Il modo corretto per controllare la riuscita di quest'ultima è quello indicato sopra.

    Ultima cosa: oltre a chiudere la connessione devi anche "chiudere" il risultato:
    Codice PHP:
    mysqli_free_result($result);

    I suggerimenti che do più spesso:


  3. #3
    Guest

    Predefinito

    Prima di tutto grazie per la risposta e la spiegazione molto interessante.
    Ho modificato il codice ed effettivamente adesso ho capito qual'è l'errore e cioè il formato della data che ho ovviamente modificato.
    Proseguo il mio progetto sicuro che avrò ancora bisogno dei tuoi/vostri consigli.

    Grazie mille

    Massimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •