Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118

    unione dati per accesso al db da due librerie condivise

    Ciao ragazzi, come da titolo ho la necessità di unificare, utilizzando una sola connessione, i dati di accesso al bd presenti in un file php. Mi spiego meglio: ho due file inclusi in un terzo file ed entrambi accedono al bd in maniera differente. Avrei necessità di avere la connessione utilizzando un solo file e non 2 ma non essendo esperta di php non riesco a farlo funzionare. Mi date una mano, se possibile? Grazie anticipatamente.

    i file in questione li posto in parte, spero che bastino.

    Index
    Codice PHP:
    <?php  
    session_start
    ();  
    require_once(
    'lib/Users.class.php');  
    $login = New Users;  
    $login->access_denied(); 

    include_once(
    'config.php');
    include_once(
    'class/data.class.php');

    $mysqli = new data(HOSTUSERNAMEPASSWORDDATABASE);
    $regioni $mysqli->getRegioni();

    ?>

    lib1
    Codice PHP:
    private $host_db 'localhost';
        private 
    $user_db 'root';
        private 
    $pass_db '';
        private 
    $name_db 'test';
        
            protected 
    $conn;
        protected 
    $selezione_db
    lib2
    Codice PHP:
    <?php
    class data extends mysqli
    {
        
    //Selezione di tutte le regioni
        
        
    public function getRegioni()
        {....
    Devo fare in modo che $mysqli = new data(HOST, USERNAME, PASSWORD, DATABASE); sparisca, di conseguenza quindi anche include_once('config.php'); presente in index, e che possa utilizzare i dati di lib1.

    $mysqli = new data();
    $regioni = $mysqli->getRegioni();

    praticamente non so come passare i parametri di connessione HOST, USERNAME, PASSWORD, DATABASE in new data(), che attualmente pesca dal file config.php, e passargli quelli presenti in lib1.

    Grazie ancora a tutti per la disponibilità.
    Loredana

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    $mysqli = new data('127.0.0.1', 'user', 'password', 'nome_database');

    questo è il modo di passare direttamente i dati.
    Dall'altra parte ci deve essere un costruttore che preleva i dati ed effettua la connessione

    // costruttore
    public function __construct($host, $user,$password,$nome_database) {
    // effettuo la connessione con le var $host,$user ecc ecc
    }
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    Ciao Fractal, dall'altra parte, nel file lib1, ho:

    Codice PHP:
    // il costruttore attiva la connessione a mysql
        
    public function __construct(){
            
    $this->connessione();
            }

    /******************
        CONNESSIONE A MYSQL
        ******************/
        
    protected function connessione(){
            
    $this->conn mysql_connect($this->host_db$this->user_db$this->pass_db) or die(mysql_error());
            
    $this->selezione_db mysql_select_db($this->name_db$this->conn) or die(mysql_error());
            return 
    TRUE;
            } 

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ok corretto allora passa i dati nel modo che ti ho indicato.
    Che mestiere difficile.....essere da soli ancora di più

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    cosi?

    Codice PHP:
    <?php  
    session_start
    ();  
    require_once(
    'lib/Users.class.php');  
    $login = New Users;  
    $login->access_denied(); 

    include_once(
    'class/data.class.php');

    $mysqli = new data($host_db$user_db$pass_db$name_db);
    $regioni $mysqli->getRegioni();

    ?>
    non va però... ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    Non riesco in nessun modo a fare l'insert nel db usando la lib1 di cui riporto il pezzo che richiamo.

    Ho fatto un test del genere ma non va...

    pagina con una insert

    Codice PHP:
    <?php  
    session_start
    ();  
    require_once(
    'lib/Users.class.php');  

    $data = New Users();  
    $data->__construct();

    $descrizione $_POST["descrizione"];

    echo 
    $_POST["descrizione"];

    if(isset(
    $_POST['submit'])) {
        
    $query "INSERT INTO schedatest (descrizione) VALUES ('$descrizione')";
        
    $mysqli->query($query);
    }

    ?>  


    [b]Inserimento[/b]
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="text" size="30" name="descrizione">
    <input name="submit" type="submit" value="Invia">
    </form>

    Il pezzo di lib1 per la connessione...

    Codice PHP:

    Class Users{
        
    /********************************
        SETTING
        *********************************/
        // le credenziali di accesso al database
        
    private $host_db 'localhost';
        private 
    $user_db 'root';
        private 
    $pass_db '';
        private 
    $name_db 'test';

    ....
    ....
    .....
    ....
    ....
    ....
    // il costruttore attiva la connessione a mysql
        
    public function __construct(){
            
    $this->connessione();
            }
        
    /******************
        CONNESSIONE A MYSQL
        ******************/
        
    protected function connessione(){
            
    $this->conn mysql_connect($this->host_db$this->user_db$this->pass_db) or die(mysql_error());
            
    $this->selezione_db mysql_select_db($this->name_db$this->conn) or die(mysql_error());
            return 
    TRUE;
            } 

  7. #7
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    devi postare l'errore che ti da.
    Che mestiere difficile.....essere da soli ancora di più

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    118
    non da nessun errore, non fa solo l'insert...

  9. #9
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    La connessione la effettua correttamente?
    Se non fa l'insert un motivo ci sarà.
    Prova ad attivare gli errori in php che probabilmente saranno disattivati.
    Che mestiere difficile.....essere da soli ancora di più

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.