[PHP] Creazione classe PDO

Discussione in 'PHP' iniziata da webfra01, 3 Settembre 2018.

  1. webfra01

    webfra01 Nuovo Utente

    Registrato:
    14 Maggio 2018
    Messaggi:
    17
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao a tutti, sto realizzando il mio progetto creare un sito con un blog tutto fatto in php.

    Siccome sono all'inizio con la programmazione ho deciso di imparare direttamente quella ad oggetti, ho creato una classe per la connessione al db dove all'interno ce la funzione consteuct che apre la connessione e un altra funzione per la chiusura delle connessione ovvero chiudi() che pare non funzionare.

    Qualcuno può gentilmente dirmi se può andate bene cone codice?

    PHP:
    <?php

    //connessione db
    class db {

        public 
    $conn;
        private 
    $hostname "localhost";
        private 
    $dbname "db";
        private 
    $user "root";
        private 
    $pass "";

       
          public function 
    __construct() {

            try{

            
    $this->conn = new PDO('mysql:host='.$this->hostname.';dbname='.$this->dbname$this->user$this->pass);

            
    $this->conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);      

          
    // riporta errori

            
    }catch(PDOException $e){

              die(
    "Errore connessione database: "$e->getMessage()); }

          }

          public function 
    chiudi() {

              
    $this->conn null;
          }

                       

        }




    //apro connessione

    $test = new db();

    //chiudo connessione

    $test->chiudi();

     

    //controllo non funziona

            
    if($test == null) {

            echo 
    'sei disconnesso';

        } else {

            echo 
    'sei connesso';

    }


    Poi vorrei creare le funzioni per aggiungere modificare ed eliminare record nel db. Ovviamente sempre con approccio oop e usando quary parametriche e BindParam

    Grazie mille a tutti
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    Ultima modifica: 3 Settembre 2018
  3. webfra01

    webfra01 Nuovo Utente

    Registrato:
    14 Maggio 2018
    Messaggi:
    17
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie mille, il primo link l'ho trovato subito dopo aver postato . Il secondo è un ottima modello, l'esempio l'avevo trovato in un forum ma su questo articolo è spiegato spiegato bene.

    Sai se esiste una cosa simile per creare una funzione che mi sanifichi gli input di un form.
    Conosco i filter_var o sanitaze ma mi piacerebbe passare una variabile presa da un form ad una funzione ed essa me la restituisca pulita (di spazi slash e simboli sfdabi.

    Graize ancora
     
    Ultima modifica: 3 Settembre 2018
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    credo non basti, le funzioni dovrebbero restituirti il valore "giusto" per la gestione, considerando anche la "localizzazione".
    ho una soluzione semplice (senza localizzazione), giusto per iniziare,
    PHP:
    function isValidDate($mydate) {
      list(
    $dd,$mm,$yy)=explode("/",$mydate);
      if(
    is_numeric($yy) and is_numeric($mm) and is_numeric($dd)) return checkdate($mm,$dd,$yy);
      return 
    false;
    }

    function 
    ValidateString($string) {
      
    $val htmlspecialcharsstrip_tagstrim$string ) ) );
      
    $val filter_var($valFILTER_SANITIZE_STRING);
      return 
    $val;
    }

    function 
    ValidateInt($int) {
      
    $val htmlspecialchars(htmlentities(strip_tags(trim($int))));
      
    $val = (int)filter_var($valFILTER_SANITIZE_NUMBER_INT);
      return 
    $val;
    }

    function 
    ValidateFloat($float) {
      
    $val htmlentities(strip_tags(trim($float)));
      
    $val str_replace(",""."str_replace("."""$val));
      
    $val = (float)filter_var($valFILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION);
      return 
    $val;
    }

    function 
    ValidateEmail($email) {
      
    $val htmlspecialchars(htmlentities(strip_tags(trim($email))));
      
    $val filter_var($valFILTER_SANITIZE_EMAIL);
      return 
    $val;
    }

    function 
    ValidateUrl($url) {
      
    $val htmlspecialchars(htmlentities(strip_tags(trim($url))));
      
    $val filter_var($valFILTER_SANITIZE_URL);
      return 
    $val;
    }

    function 
    ValidateDate($dt$df _INTL_DateTimeFormat) {
      
    $dt htmlspecialchars(htmlentities(strip_tags(trim($dt))));
      if (empty(
    $dt)) return $dt;
      
    $dt str_replace(".000"""str_replace(".000000"""$dt));
      
    $val DateTime::createFromFormat($df$dt);
      if ( !( 
    $val and $val->format($df) === $dt ) ) return "ERR";
      return 
    $dt;
    }
     
  5. webfra01

    webfra01 Nuovo Utente

    Registrato:
    14 Maggio 2018
    Messaggi:
    17
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie mille, ho provato a creare la classe pdo come spiegato nel secondo link ma purtroppo ottengo degli errori. Riconttillo il codice è j caso posto l'errore

    Grazie ancora
     
Sto caricando...

Condividi questa Pagina