Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di pcg4m3s
    Registrato dal
    Aug 2007
    Messaggi
    244

    Includere connessione al DB in una classe PHP

    Salve a tutti,
    riesco ad includere la connessione nella pagine web php ma non nelle classi php.

    nelle pagine web faccio require_once("DB.connect.php"); ed è tutto ok.

    invece nelle classi non riesco...

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Una cosa fatta per fare...
    codice:
    <?php
       
       class cDBMySQL{
           private static $conn=null;
           public function  __construct($dbname,$server,$username,$password) {
               if(is_null(self::$conn))
                   self::$conn=  mysql_connect($server, $username, $password);
               mysql_select_db($dbname);
           }
           
           public function Query($sql) {
               return mysql_query($sql, self::$conn);
           }
       }
       
       class strana{
           private $db;
           public function  __construct() {
               $this->db=new cDBMySQL("nomedb", "serverDB", "userdb", "passworddb");
               $this->db->Query("altra query in classe");
           }
       }
       
       class strana2{
           private $db;
           public function  __construct($db) {
               $this->db=$db;
               $db->Query("altra query");
           }
       }
       
       $conn1=new cDBMySQL($dbname,$server, $username, $password);
       $res1=$conn1->Query("select * from tabella1");
       $conn2=new cDBMySQL($dbname,$server, $username, $password);
       $res2=$conn2->Query("select * from tabella2");
       $st2=new strana2($conn1);
       ?>

  3. #3
    Utente di HTML.it L'avatar di pcg4m3s
    Registrato dal
    Aug 2007
    Messaggi
    244
    no io dicevo che siccome ho la connessione in un file php che includo dove mi serve connettermi al db, nelle classi php non riuscivo a vedere la variabile di connessione. ho risolto passandola nel costruttore. ciaooooooo

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Hai anche un'altra possibilità, se la tua varaibile di connessione è globale allo script in esecuzione, senza passarla nel costruttore puoi dichiararla nella funzione dellea classe che ne fa uso con global

    es.
    codice:
    $pippo=100
    
    class classe{
      public function unafunz(){
        global $pippo; //ora posso usare pippo che è uguale a 100
        $pippo=50; //ora la pippo di fuori vale 50
      } 
    }

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.