Probleminha com Classes
Assim, eu tô montando uma classe de manipulação MySQL mais para aprender a programar com classe.
Só que assim, eu tenho, na classe, uma função que executa a query passada e as outras que "criam" as instruções de consulta.
E eu queria juntá-las.
Vejam o código que dá pra entender.
<?php/*+--------------------------------------------------------------------------| 3M Manager| =============================================| by Bruno Augusto| (c) 2005 Digital Masters Programmer Team| Web: http://www.digitalmasters.com.br+---------------------------------------------------------------------------| > MySQL Class Script| > Script by Bruno Augusto| > Date started: Domingo, 9 de Julho 2006 (18:28)+--------------------------------------------------------------------------*/// Segurança$checkurl = $_SERVER["PHP_SELF"];if( eregi( 'class.mysql.php', '$checkurl' ) ){ header( 'Location: index.php' );}class MySQL{ var $query; var $link; var $result; // Constructor function MySQL() { } // Método de Conexão function connect() { // Carregando... require_once 'config.php'; $this -> link = mysql_connect( $INFO['host'], $INFO['user'], $INFO['pass'] ); if( ! $this -> link ) { print "<b>Error " . mysql_errno() . "</b>: " . mysql_error() . "."; exit(); } elseif ( ! mysql_select_db( $INFO['db'], $this -> link ) ) { print "<b>Error " . mysql_errno() . "</b>: " . mysql_error() . "."; exit(); } } // Método de Consulta function run( $query ) { $this -> query = $query; if( $this -> result = mysql_query( $this -> query ) ) { return $this -> result; } else { print "<b>Error " . mysql_errno() . "</b>: " . mysql_error() . "."; exit(); } } // Métodos de Manipulação de Dados function simple_select( $get, $table, $where="", $and="" ) { $current = "SELECT $get FROM $table"; if( $where != "" ) { $current .= " WHERE $where"; if( $and != "" ) { $current .= " AND $and"; } } return $current; } // Método de Retorno function fetch( $type, $resource ) { $this -> type = $type; $this -> resource = $resource; switch( $this -> type ) { case "array": return $this -> result = mysql_fetch_array( $this -> resource ); break; case "assoc": return $this -> result = mysql_fetch_assoc( $this -> resource ); break; case "object": return $this -> result = mysql_fetch_object( $this -> resource ); break; case "row"; return $this -> result = mysql_fetch_row( $this -> resource ); break; default: $this -> disconnect(); break; } } // Método de Encerramento function disconnect() { return mysql_close( $this -> link ); }}?>Tem a de conexão, a que executa a query, uma de teste que cria as instruções, uma outra que trata o retorno dos dados (fetch) e um que fecha a conexão.
Eu tô usando assim:
$MySQL = new MySQL; $connect = $MySQL -> connect(); $query = $MySQL -> run( "SELECT * FROM config" ); $row = $MySQL -> fetch( "array", $query );Tá funcionando direitinho, porém, desse jeito eu não posso usufruir, por exemplo, da função simple_select().
Resumindo, como que eu faço pra "juntar" ou interagir a função run() com a simple_select e as outras subsequentes (INSERT, DELETE, UPDATE e etc.)
Outra coisa, essa minha classe tá boa? Porque, tipo assim, eu tô aprendendo e apesar de estar funcionando mnão sei se está realmente "boa".
Onde e o quê posso melhorar, se é necessário.
[]'s
Discussão (5)
Carregando comentários...