Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2008, 10:40
Avatar de chitoso
chitoso
 
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años, 9 meses
Puntos: 5
Problema con require('dbconfig.php') en clase MySQLConnect

Hola, cree una clase singleton con metodos estaticos para encapsular lo que sería la conexion a la base de datos y los querys, por ahora.
Es bastante simple y esta basada en varios tutoriales sobre el tema que me ayudaron a crearla.

Tengo la siguiente estructura de archivos:

Programa/
__classes/
____MySQLConnect.php
__admin/
____admin_table.php
functions.php
dbconfig.php

Cuando utilizo la clase MySQLConnect en admin_table.php anda barbaro. Pero cuando la utilizo en functions.php me da el error:

Código PHP:
Warningmysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using passwordNOin C:xampphtdocsGSMonsterclassesMySQLConnect.php on line 19
[mysqlconnect:19]No se pudo conectar
Creo entender cual es el error, pero no se como solucionarlo, de eso se trata, no?

La clase MySQLConnect es la siguiente:

Código PHP:
class MySQLConnect{

    private static 
$instance NULL;
    private 
$connection;

    
//Private constructor
    
    
private function __construct() {
        require_once(
'../dbconfig.php');
    
        
$this->connection mysql_connect($host$user$pass) or die("[mysqlconnect:19]No se pudo conectar a ".$host);
        
mysql_select_db($db) or die(mysql_error());
    }

    static public function 
getInstance() {
       if (
self::$instance == NULL) {
          
self::$instance = new MySQLConnect ();
       }
       return 
self::$instance;
    }
    
    
//Closes the mySQL Connection
    
public function close(){
        if(isset(
$this->connection)){
            
mysql_close($this->connection);
            unset(
$this->connection);
        }
        
self::$instance NULL;
    }
    
    public function 
__toString() {
        return 
"MySQLConnect Class";
    }
    
    public function 
query($q){
        return 
mysql_query($q);
    }
      
  } 
Como ven, hace un require_once('../dbconfig.php'); al principio. Yo creo que al incluír el archivo dbconfig.php, en vez de pararse donde se encuentra fisicamente, se para donde esta ejecutando el script y lo va a buscar las dos veces a un directorio diferente, no se si se entiende?....

La verdad no se bien como funciona el tema. De paso quería ver si me daban un par de criticas (constructivas, siempre ;)) sobre la clase que cree.

Gracias,
Ignacio

Última edición por chitoso; 05/06/2008 a las 10:42 Razón: No quedo bien la indentacion para la estructura de archivos.