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

    oo solo per ordinare un pò di + il codice?

    ragazzi fino a che punto è sbagliato scrivere cosi?
    codice:
    class clsMysqlDb {
    	function connect() {
    		$link=mysql_connect('localhost','root');
    		
    		if (!is_resource($link))
    			return FALSE;
    		else
    			return TRUE;
    	}
    	
    	function select_db($name) {
    		mysql_select_db($name);
    	}
    		
    }
    
    clsMysqlDb::connect();
    clsMysqlDb::select_db('manage');
    avevo pensato ad una cosa del genere per tenere un pò più ordinato il codice.. e non mi sembra una pessima idea

  2. #2
    nessuno si esprime?

  3. #3
    mi esprimo che probabilmente quel tuo codice non funziona.. ma io ho appena iniziato con l'oop quindi può darsi che mi sbaglio
    $link devi passarlo come variabile pubblica altrimenti come fai le query?
    (mysql_query)

    class clsMysqlDb {
    public $link;
    function connect() {
    $this->link = mysql_connect('localhost','root'
    );

    if (!is_resource($this->link))
    return FALSE;
    else
    return TRUE;
    }

    function select_db($name) {
    return (mysql_select_db($name));
    }

    }

    clsMysqlDb->connect();
    clsMysqlDb->select_db('manage');

  4. #4
    naaa, se non usi più connessioni contemporanemanete non c'è biosgno di tenere quella variabile, il secondo paramentro per mysql_query è opzionale.

    cmq per se vuoi fare quello che dici è, penso sia consigliabile fare cosi, (questo è utile ovviamente in caso si utilizzino connessioni diverse contemporanemante)

    codice:
    class clsMysqlDb2 {
    	var $link;
    	
    	function clsMysqlDb2($host,$user='root',$pass='') {
    		$this->link=mysql_connect($host,$user,$pass);
    	}
    	
    	function select_db($name) {
    		mysql_select_db($name,$this->link);
    	}
    	
    	function query($query) {
    		return mysql_query($query,$this->link);
    	}
    		
    }
    
    $conn['main']=new clsMysqlDb2('host1');
    $conn['main']->select_db('db');
    // Ora si possono eseguire query a con $conn['main']->query("SELECT ..");
    non ho provato il codice, può darsi che ho dimenticato qualcosa


  5. #5
    una classe per gestire un database ... uhm, progetto ardito ricco di possibili complicazioni e/o dimenticanze.

    Nella tua ad esempio non c'e' il close, l' unbuffered_query, il fetch_assoc o il fetch_num, piu' fetch_Array , num_rows e tanto altro .

    L'ideale sarebbe fare una classe astratta che a seconda del tipo di database utilizza gli stessi metodi , a parametri magari differenti, per connettersi e gestire MySQL, SQLite, Postgre, Oracle, etc. etc. ... qui sta' la forza delle Pear, hanno da molto tempo layer astratti per la gestione dinamica di databases di vario tipo e vanno molto bene.

    Se invece vuoi farti un' idea di una classe con meno pretese, utilizzabile allo stesso modo con MySQL come con SQLite, con l'aggiunta di alcune features mancanti nel secondo caso, puoi dare un' occhiata a questa classe.

    http://www.3site.it/DOCUMENTATION/
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    si può essere interessante ma non è che ora mi serve molto, uso solo mysql


    comunque tu hai detto che io mi sono dimenticato alcuni metodi come il fatch_array

    l'ho fatto volutamente perchè per es per eseguire una SELECT si potrebbe fare cosi

    $result=$db->query("SELECT * FROM table");

    while($r=mysql_fetch_array($result))
    print_r($r);



  7. #7
    metti la gestione della risorsa della connessione...xche non ti costa nulla aggiungerla in fase di progettazione, ma dopo che è tutto fatto ti costa assai ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Originariamente inviato da xnavigator
    si può essere interessante ma non è che ora mi serve molto, uso solo mysql


    comunque tu hai detto che io mi sono dimenticato alcuni metodi come il fatch_array

    l'ho fatto volutamente perchè per es per eseguire una SELECT si potrebbe fare cosi

    $result=$db->query("SELECT * FROM table");

    while($r=mysql_fetch_array($result))
    print_r($r);


    trovo piu' comodo e/o elegante:

    codice:
    $db->query( "SELECT * FROM table" );
    while( $result = $db->fetch( ASSOC ) ) {
    // ...
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.