+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

Query con PDO accedere agli attributi

Ultimo Messaggio di flaviors200 il:
  1. #1
    User
    Data Registrazione
    Jul 2009
    Messaggi
    351

    Query con PDO accedere agli attributi

    Buongiorno a tutti,
    forse il titolo è poco chiaro, quindi di seguito cerco di fornire maggiori dettagli.

    Devo poter eseguire una query con PDO in PHP.

    Ho una classe in php
    Codice PHP:
    class miaclasse {
    private 
    $PDO;
      
    //PASSAGGIO DELLA CONNESSIONE  public function __construct($PDOconn) {    $this->PDO = $PDOconn;  }

    public function estraiutente(){  try{
        
    //PREPARO ED ESEGUO LA QUERY ESEMPIO    $iduser = 4;    $query = "SELECT * FROM utenti WHERE id = :id";    $richiesta_query = $this->PDO->prepare($query);    $richiesta_query->bindParam(":id",$iduser, PDO::PARAM_INT);    $richiesta_query->execute();
        //CONTROLLO SE LA QUERY RESTITUISCE ALMENO UN RISULTATO    if($richiesta_query->rowCount()==0){      throw new PDOException ("I Dati inseriti non RESTITUISCONO NULLA");    }
        //ARRAY ASSOCIATIVO PER CONFRONTO PASSWORD    $record = $richiesta_query->fetch(PDO::FETCH_ASSOC);    $utente = $record['id'];
      
    }catch(PDOException $e) {    echo "<br />Message : ".$e->getMessage();    echo "<br />Message : ".$e->getline();  } //CATCH


    Funziona, ma al di fuori della funzione, quindi all'esterno del programma ho bisogno di accedere alla variabile $utente e anche ad altre variabili che dovrei inserire nel programma. Non so come sia possibile farlo.
    Mi aiutate ?
    Grazie mille.

  2. #2
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    286
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao,

    la variabile $utente è dentro il metodo estraiutente della classe miaclasse, fattela tornare con un semplice return

    Codice PHP:
    return $utente
    se hai necessità di farti tornare più valori inseriscili in un array e fai il return dell'array.

    Nel titolo hai utilizzato la parola attributi, un attributo è una proprietà della classe che si solito si dichiara private (o protected), per accedervi dall'esterno quindi si crea un metodo pubblico (es. get) che ritorna il valore dell'attributo.

    Es.

    Codice PHP:
    private $id;

    public 
    getId()
    {
        return 
    $this->id;

    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

  3. #3
    User
    Data Registrazione
    Jul 2009
    Messaggi
    351
    Ciao ho scritto una funzione di tipo public che si trova dentro una classe.
    Allego foto perchè il forum non con i tag php non indenta il codice e diventa illegibile.



    All'esterno della funzione, accedo così
    Codice PHP:
    //ESTRAPOLO INFORMAZIONI
    foreach($utente->estrapola_dati_utente_connesso($user_id_loggato) as $info_utente) {
       
    $qnome $info_utente['nome'];
       
    $qemail $info_utente['email'];

    Esistono altri modi per semplificare o per migliorare l'accesso a questa function ?
    Immagini Allegate Immagini Allegate

  4. #4
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    286
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao,

    puoi usare Pastebin per il codice https://pastebin.com/

    Le righe 65-75 sono inutili, ritorna direttamente $richiesta_query->fetch(PDO::FETCH_ASSOC); oppure lo assegni ad una variabile e la ritorni

    Codice PHP:
    $dati $richiesta_query->fetch(PDO::FETCH_ASSOC);
    return 
    $dati
    All'esterno in questo caso non hai bisogno di un ciclo poiché hai selezionato una sola riga dal database (con la funzione fetch() di PDO)

    Quindi puoi utilizzare direttamente l'array in questo modo

    Codice PHP:
    $dati $utente->estrapola_dati_utente_connesso($user_id_loggato);

    if (
    $dati) {
        echo 
    $dati['nome'];

    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

  5. #5
    User
    Data Registrazione
    Jul 2009
    Messaggi
    351
    Non ho capito!
    Nel senso che ho selezionato un solo utente vero, ma devo estrapolare tutti i campi di quel singolo utente (Nome, Cognome, Città ....) per questo ho utilizzato l'array

  6. #6
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    286
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Non hai bisogno di ciclare l'array per accedere ai dati restituiti con la funzione fetch(), fai come il codice che ti ho postato.

    Il ciclo ti servirebbe nel caso utilizzassi la funzione fetchAll() che ritorna tutte le righe della tabella.
    Sviluppo siti web dinamici e gestionali | Flaviobiscaldi.it

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.