Visualizzazione risultati 1 fino 4 di 4

Discussione: Problema con PHPMyAdmin

  1. #1
    antonioit non è connesso Neofita
    Data registrazione
    10-10-2020
    Messaggi
    2

    Predefinito Problema con PHPMyAdmin

    Ciao ragazzi!
    Ho un problema con il database phpmyadmin di altervista collegato al mio sito:

    public function inserisci_account( array $dati )
    {
    try
    {
    $connessione = $this->crea_connessione();
    $query = $connessione->prepare("INSERT INTO accounts(`username`, `nome`, `cognome`, `email`, `sesso`,`immagine`) VALUES ( :username, :nome, :cognome, :email, :sesso, :immagine )");
    $query->bindParam("username", $dati['username'], PDO::PARAM_STR);
    $query->bindParam("nome", $dati['nome'], PDO::PARAM_STR);
    $query->bindParam("cognome", $dati['cognome'], PDO::PARAM_STR);
    $query->bindParam("email", $dati['email'], PDO::PARAM_STR);
    $query->bindParam("sesso", $dati['sesso'], PDO::PARAM_STR);
    $query->bindParam("immagine", $dati['immagine'], PDO::PARAM_STR);
    $query->execute();
    $this->chiudi_connessione( $connessione );
    header("Location: amministrazione.php");
    return;
    } catch (PDOException $eccezione) {
    exit($eccezione->getMessage());
    }
    }

    Notate qualcosa di sbagliato? perchè non mi da alcun errore, ma non mi aggiunge il record nella tabella...
    Grazie in anticipo

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

    Predefinito

    Hai verificato che:
    1. quel metodo venga effettivamente invocato
    2. il vettore di dati definisca almeno tutte le chiavi utilizzate nel codice
    3. il metodo crea_connessione imposti il valore dell'attributo PDO::ATTR_ERRMODE a PDO::ERRMODE_EXCEPTION
    4. non siano presenti altri errori (per esempio $connessione vale false perché l'inizializzazione fallisce), per esempio usando error_reporting(E_ALL)


    Non credo sia collegato al problema, sono anzi abbastanza sicuro sia irrilevante, ma generalmente i ":" vengono utilizzati nei nomi degli identificatori dentro a bindParam:
    Codice PHP:
    $query->bindParam(":username", $dati['username'], PDO::PARAM_STR);
    Un'altra questione secondaria è che stai usando bindParam, ma per come si comporta il codice sarebbe più adatto bindValue.

    I suggerimenti che do più spesso:


  3. #3
    antonioit non è connesso Neofita
    Data registrazione
    10-10-2020
    Messaggi
    2

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Hai verificato che:
    1. quel metodo venga effettivamente invocato
    2. il vettore di dati definisca almeno tutte le chiavi utilizzate nel codice
    3. il metodo crea_connessione imposti il valore dell'attributo PDO::ATTR_ERRMODE a PDO::ERRMODE_EXCEPTION
    4. non siano presenti altri errori (per esempio $connessione vale false perché l'inizializzazione fallisce), per esempio usando error_reporting(E_ALL)


    Non credo sia collegato al problema, sono anzi abbastanza sicuro sia irrilevante, ma generalmente i ":" vengono utilizzati nei nomi degli identificatori dentro a bindParam:
    Codice PHP:
    $query->bindParam(":username", $dati['username'], PDO::PARAM_STR);
    Un'altra questione secondaria è che stai usando bindParam, ma per come si comporta il codice sarebbe più adatto bindValue.
    1- Grazie per il consiglio dell'utilizzo di bindValue, effettivamente è più sensato;
    2- Valutando tutte le opzioni pare che funzioni tutto, alla fine in locale non ho problemi, il problema si verifica solo quando carico il sito su altervista...

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

    Predefinito

    Tra l'host di AlterVista e uno locale possono cambiare molte cose.
    Molto strano, per non dire sospetto, che se il metodo viene invocato non vengano prodotti messaggi d'errore o eccezioni in caso di malfunzionamento.

    I suggerimenti che do più spesso:


Regole di scrittura

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