Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2006, 06:31
kurroman
 
Fecha de Ingreso: junio-2004
Mensajes: 266
Antigüedad: 19 años, 11 meses
Puntos: 8
Objeto de conexion de base de datos

A ver, no se si estoy haciendo esto bien, estoy haciendo una aplicacion orientada a objetos, con un objeto para las conexiones a la base de datos.
La clase se llama bd_mysql, con su constructor, un metodo conectar, que devuelve una conexion y un metodo consultar que recibe como parametro una sentencia SQL y la ejecuta. Esta conexion, la paso como argumentos a metodos de otros objetos.

Tengo el siguiente proceso de insercion .php:
Código PHP:
<?
    
include_once("class/zona.php");
    include_once(
"php/funcion_forms.php");
    include_once(
"data.php");
    include_once(
"class/bd_mysql.php");
    
    
$obj_zona = new zona();

    
$obj_zona->set_point_x($point_x);
    
$obj_zona->set_point_y($point_y);

    
// creo el objeto bd_mysql, obtengo una conexion, y se la paso como
        // argumento al metodo insertar_zona de la clase zona
                
    
$obj_mysql = new bd_mysql();
    
$conexion $obj_mysql->conectar($bd,$servidor,$usuario,$clave);
    
$res $obj_zona->insertar_zona($conexion);
    
$obj_mysql->cerrar_conexion();    
?>

El metodo conectar de la clase bd_mysql es el siguiente:
Código PHP:
<?
/*Conexión a la base de datos*/
    
function conectar($basedatos,$servidor,$usuario,$clave) {
         
$this->basedatos $basedatos;
        
$this->servidor $servidor;
        
$this->usuario $usuario;
        
$this->clave $clave;
     
        
// Conectamos al servidor
        
$this->Conexion_ID mysql_connect($this->servidor$this->usuario$this->clave);

        if (!
$this->Conexion_ID) {
            
$this->Error "Ha fallado la conexión.";
            return 
0;
        }

        
//seleccionamos la base de datos
        
if (!@mysql_select_db($this->basedatos$this->Conexion_ID)) {
            
$this->Error "Imposible abrir ".$this->basedatos ;
            return 
0;
        }

        
/* Si hemos tenido éxito conectando devuelve el identificador de la conexión, sino devuelve 0 */
        
return $this->Conexion_ID;
    }
?>
Y el metodo insertar_zona de la clase zona:

Código PHP:
// Metodos de operaciones para la logica de negocio
function insertar_zona($miconexion) {
    
$sql "INSERT INTO zonas (point_x,point_y) VALUES (".    
                    
$this->point_x."','".
                    
$this->point_y."')";
    
        
$miconexion->consulta($sql);
            
    return 
$miconexion->Error;


El caso es que recibo error en la linea $miconexion->consulta($sql); de insertar_zona, el error es:


Fatal error: Call to a member function on a non-object in /var/www/vhost/........./zona.php on line 213


Hay algo que hago mal con el tema de los objetos, la verdad que voy un poco a ciegas, si alguien puede hecharme un cable...