Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    residenza
    Torino
    Messaggi
    18

    PDO: Problemi con INSERT

    Ciao a tutti, sto cercando di entrare nel mondo del PDO.
    Sto provando a fare una "semplice" (credevo io) procedura di inserimento all'interno del db.
    In sostanza ho un form in una pagina che mi passo via POST ad un'altra per fare le operazioni.
    Che sono:


    Codice PHP:
    //Inserisco i dati dei campi input in variabili
    $nome $_POST['nome'];
    $cognome $_POST['cognome'];
    $nascita $_POST['nascita'];
    $rif_genitore $_POST['genitore'];
    $email $_POST['email'];

    //Imposto la query
    $sql "INSERT INTO tbl_anag(id_anag, nome, cognome, data_nascita, rif_genitore, email) 
    VALUES
    (default,  ':nome', ':cognome', ':data_nascita', ':rif_genitore', ':email')"
    ;


    //Faccio il prepare
    $stmt $db->prepare($sql);


    $stmt->bindValue (':nome'$nomePDO::PARAM_STR);
    $stmt->bindValue (':cognome'$cognomePDO::PARAM_STR);
    $stmt->bindValue (':data_nascita'$nascitaPDO::PARAM_STR);
    $stmt->bindValue(':rif_genitore'$rif_genitorePDO::PARAM_STR);
    $stmt->bindValue(':email'$emailPDO::PARAM_STR);


    $stmt->execute(); 
    La query funziona, nel senso che nel db i dati vengono caricati ma...
    non quelli presenti nella variabile, ma i nomi dei parametri (:nome, :cognome, :data_nascita, etc)

    Non capisco dove sbaglio, ci sto sbattendo la testa da tempo e ormai non riesco a vedere errori.
    Sono disperato...

    Grazie!
    Ultima modifica di arconte; 17-07-2017 a 18:02

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Hai provato senza apici nella query $sql ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    residenza
    Torino
    Messaggi
    18
    Ciao badaze,
    grazie per la risposta.
    Sì, ho provato.
    E così non mi esegue la query.
    Se invece li rimeto...magicamente mi inserisce i dati nella tabella.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Ti inserisce i dati o i nomi adesso ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    residenza
    Torino
    Messaggi
    18
    Solo i nomi dei parametri, :nome, :cognome, etc.

    Stranissmo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    9
    Prova a dichiarare la query fra singoli apici e togli gli apici all'interno, tipo così:

    $sql = 'INSERT INTO tbl_anag(id_anag, nome, cognome, data_nascita, rif_genitore, email) VALUES (default, :nome, :cognome, :data_nascita, :rif_genitore, :email)';

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    residenza
    Torino
    Messaggi
    18
    Ciao mr_web,
    grazie per l'ìntervento.
    Purtroppo non funziona neanche così.
    Anzi, in questa configurazione la query non viene neppure eseguita.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    9
    La cosa mi ha incuriosito... ho provato sul mio server locale il tuo codice e funziona (togliendo gli apici che racchiudono i parametri).

    Ti incollo il mio codice:

    $db = new PDO("mysql:host=localhost;dbname=test;charset=utf8 ", "root", "*****");


    //Inserisco i dati dei campi input in variabili
    $nome = "ciccio";
    $cognome = "pasticcio";
    $nascita = "09101978";
    $rif_genitore = "pppp";
    $email = "asdadasd";


    //Imposto la query
    $sql = "INSERT INTO tbl_anag(id_anag, nome, cognome, data_nascita, rif_genitore, email)
    VALUES
    (default, :nome, :cognome, :data_nascita, :rif_genitore, :email)";




    //Faccio il prepare
    $stmt = $db->prepare($sql);




    $stmt->bindValue (':nome', $nome, PDO::PARAM_STR);
    $stmt->bindValue (':cognome', $cognome, PDO::PARAM_STR);
    $stmt->bindValue (':data_nascita', $nascita, PDO::PARAM_STR);
    $stmt->bindValue(':rif_genitore', $rif_genitore, PDO::PARAM_STR);
    $stmt->bindValue(':email', $email, PDO::PARAM_STR);




    $stmt->execute();

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.