Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Classe connessione pdo

  1. #1

    Classe connessione pdo

    Salve ho una classe connessione che sto costruendo :

    codice:
    <?php
    include '../config/config.php';
    /**
    * 
    */
    class Connessione
    {
    	/**
         * @var object $db_connection The database connection
         */
        private $db_connection            = null;
    
    
    
    
        
    	function __construct(){
    		
    
    
    		session_start();
    
    
    		$this->databaseConnection();
    
    
    
    
    	}
    
    
    	 /**
         * Checks if database connection is opened and open it if not
         */
        private function databaseConnection()
        {
            // connection already opened
            if ($this->db_connection != null) {
                return true;
            } else {
                // create a database connection, using the constants from config/config.php
                try {
                    // Generate a database connection, using the PDO connector
                    // @see http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
                    // Also important: We include the charset, as leaving it out seems to be a security issue:
                    // @see http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers#Connecting_to_MySQL says:
                    // "Adding the charset to the DSN is very important for security reasons,
                    // most examples you'll see around leave it out. MAKE SURE TO INCLUDE THE CHARSET!"
                    $this->db_connection = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS);
                    return true;
                // If an error is catched, database connection failed
                } catch (PDOException $e) {
                    $this->errors[] = MESSAGE_DATABASE_ERROR;
                    return false;
                }
            }
        }
    
    
        public function get_databaseConnection(){
    
    
        	return $this->db_connection;
        }
    	
        public function eseguiqueryfetch($sql){
    
    
         	
            if($this->get_databaseConnection()){
    
    
                //Eseguo la query
                $statement = $this->get_databaseConnection()->query($sql); 
                        
                $result = $statement->fetch(PDO::FETCH_ASSOC);
                
                return $result;
            }
            else{
                echo'errore';
            }
            
         
        }
    
    
    
    
         public function contaRighe($sql){
            $connessione=$this->get_databaseConnection();
                
            //Preparo la query
            $query = $connessione->prepare($sql); 
    
    
            //eseguo la query 
            $query->execute();
    
    
            //conto le righe
            $count = $query->rowCount();
    
    
            return $count;
    
    
         }
    
    
    
    
    }
    
    
    
    
    
    
    ?>
    Richiamando in una pagina esterna il metodo eseguiqueryfetch($sql)

    ho il seguente errore , premetto che la connessione è presente e che la stringa sql inserita in php admin funziona....

    Quale è l'errore

    Call to a member function fetch() on a non-object in /membri/my_site/classes/Connessione.php on line 65

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Sei partito dal presupposto che PDO lanci eccezioni di default, quando non è così. http://php.net/manual/it/pdo.error-handling.php
    Se non vuoi attivare quella modalità, controlla cosa ti restituisce PDO::query prima di richiamare fetch.

  3. #3
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Sei partito dal presupposto che PDO lanci eccezioni di default, quando non è così. http://php.net/manual/it/pdo.error-handling.php
    Se non vuoi attivare quella modalità, controlla cosa ti restituisce PDO::query prima di richiamare fetch.
    Stampando con echo il result ?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.