Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Classe per la COnnessione del DB

    Mi sto creando una classe per la connessione al DB, in modo che posso ottenere dati velocemente senza dover ogni volta rifare tutto..
    questo è il file functions.php che contiene la classe:

    Codice PHP:
    <?php

    // Database //
    class Database {

        
    // Variabili del DB
        
    var $db_host;
        var 
    $db_name;
        var 
    $db_password;
        var 
    $db_user;
        
        function 
    Database(){
        }

        
    // Configura il DB
        
    function ConfiguraDB($host$user$password$database){
            
    $this->db_host $host;
            
    $this->db_user $user;
            
    $this->db_password $password;
            
    $this->db_name $database;
        }

        
    // Connette al DB
        
    function ConnettiDB(){
            
    $db mysql_connect($this->db_host$this->db_user$this->db_password);
            if (
    $db == FALSE) die ("Impossibile connettere. DBConfig non impostato.");
            
    mysql_select_db($this->db_name$db) or die ("Impossibile trovare il Database richiesto. Cambiarlo nel DBConfig.");
        }
        
        
    // Chiude il DB
        
    function ChiudiDB(){
            global 
    $db;
            
    mysql_close($db);
        }
        
        
    // Ottiene i Dati
        
    function OttieniDati($query){
            global 
    $db;
            
    $this->ConnettiDB();
            
    $result mysql_query($query$db);
            
    $this->ChiudiDB();
            return 
    $result;
        }
    }

    ?>
    Mentre il file che la richiama è questo (index.php):

    Codice PHP:
    <?php

    include("./functions.php");

    $Database = new Database;
    $Database->ConfiguraDB("localhost""root""""my_prova");

    $Database->OttieniDati("SELECT keys FROM keywords");

    echo(
    $Database);


    ?>
    e gli errori sono questi:

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\programmi\easyphp1-8\www\functions.php on line 44

    Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in c:\programmi\easyphp1-8\www\functions.php on line 37
    Object
    C'è da dire che l'echo del risultato della query ovviamente era solo di prova, ma tanto gli errori che mi vengono fuori sono dovuti ankora alla classe.. chi mi sa aiutare?
    Yep ^^

  2. #2
    global $db ? dov'è definito?

  3. #3
    Argh.. allora non sapevo come dirgli:
    Codice PHP:
    $db mysql_connect($this->db_host$this->db_user$this->db_password); 
    Nel senso, io la variabile $db la dichiaro nella connessione al db, come faccio a dirgli di usare quella?
    Yep ^^

  4. #4

    Re: Classe per la COnnessione del DB

    Originariamente inviato da Il Gecko
    Codice PHP:
    <?php

    // Database //
    class Database {

        
    // Variabili del DB
        
    var $db_host;
        var 
    $db_name;
        var 
    $db_password;
        var 
    $db_user;
        var 
    $db// <<<<< :F

    //ah, fossi in te...
        
        
    function Database($host$user$password$database){
            
    $this->db_host $host;
            
    $this->db_user $user;
            
    $this->db_password $password;
            
    $this->db_name $database;
        }

        
    // Connette al DB
        
    function ConnettiDB(){
            global 
    $db// <<<<< qui da aggiungere
    Mentre il file che la richiama è questo (index.php):

    Codice PHP:
    <?php

    include("./functions.php");
    $Database = new Database("localhost""root""""my_prova"); // <<<<< solo un parere, eh?

  5. #5
    Vediamo se ho capito, così almeno imparo un pò:
    1) hai messo la configurazione nel costrutto della classe in modo che potessi configurarlo anche solo
    creandolo, giusto?

    2) hai dichiarato la variabile della classe ($db), e siccome la variabile $db deve essere la stessa in tutte e 3 òe funzioni devo richiamarla con il global, in modo che modifichi la variabile globale e nn una interna solo alla funzione.. quindi, sempre se nn sbaglio, potevo fare

    Codice PHP:
    <?php

    // Database //
    class Database {

        
    // Variabili del DB
        
    var $db_host;
        var 
    $db_name;
        var 
    $db_password;
        var 
    $db_user;
        var 
    $db;
        
        function 
    Database($host$user$password$database){
            
    $this->db_host $host;
            
    $this->db_user $user;
            
    $this->db_password $password;
            
    $this->db_name $database;
        } 

        
    // Connette al DB
        
    function ConnettiDB(){
            
    $this->db mysql_connect($this->db_host$this->db_user$this->db_password);
            if (
    $this->db == FALSE) die ("Impossibile connettere. DBConfig non impostato.");
            
    mysql_select_db($this->db_name$this->db) or die ("Impossibile trovare il Database richiesto. Cambiarlo nel DBConfig.");
        }
        
        
    // Chiude il DB
        
    function ChiudiDB(){
            
    mysql_close($this->db);
        }
        
        
    // Ottiene i Dati
        
    function OttieniDati($query){
            
    $this->ConnettiDB();
            
    $result mysql_query($query$this->db);
            
    $this->ChiudiDB();
            return 
    $result;
        }
    }

    ?>
    O ho detto una grandissima cazzata?
    Yep ^^

  6. #6
    Originariamente inviato da Il Gecko
    Vediamo se ho capito, così almeno imparo un pò:
    1) hai messo la configurazione nel costrutto della classe in modo che potessi configurarlo anche solo
    creandolo, giusto?
    giusto, risparmi una riga

    Originariamente inviato da Il Gecko
    quindi, sempre se nn sbaglio, potevo fare
    in effetti... anzi, con $this come hai fatto è anche più meglio

  7. #7
    perfetto.. Grazie mille
    Yep ^^

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.