Ver Mensaje Individual
  #10 (permalink)  
Antiguo 21/07/2008, 21:46
sukaku
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema: Fatal error: Call to a member function getConexionV() on a non-o

<?
class Coneccion_BD
{
private $usuario;
private $contraseña;
private $host;
private $base_datos;
private $coneccion;

public function __construct($pusuario,$pcontraseña,$phost,$pbase_d atos)// inicializa los datos
{
$this->usuario = $pusuario;
$this->contraseña = $pcontraseña;
$this->host = $phost;
$this->base_datos = $pbase_datos;
}

public function Coneccion()//establece la coneccion
{
if ($this->host != "" or $this->usuario != "" or $this->contraseña != "")
{
$this->coneccion= mysql_connect($this->host,$this->usuario,$this->contraseña);
if(mysql_errno())
{
return false;
}
return true;
}
else
exit();
}

public function Consultar_BD($pquery)
{


if(!mysql_select_db($this->base_datos))
echo mysql_errno($this->coneccion);

$result = mysql_query($pquery);
if (!$result)
return 1; //error
else
return $result; // correcto

}
};


?>


Este es el codigo de mi clase para conectarme a la base de datos es bastante sencilla, me parece que es lo que me sugieres cuando dices que me cree una clase persistencia cree una instancia y la utilice pero eso precisamente es lo que hago y sin embargo si no declaro global la variable en la que guardo el objeto me muestra el mensaje diciendo que llamo a la funcion con una variable que no es objeto de la clase. Este es el codigo fijate que comentarie al principio la declaracion de global y ahi viene el problema.
A si se que se escribe con x pero la historia es larga y personal, gracias de antemano.

<?php
include("includes/Coneccion_BD.php");
require("xajax/xajax.inc.php");
$xajax = new xajax();
$b = new Coneccion_BD('root','root','localhost','ajax');
$b->Coneccion();

function BD($datos)
{
//global $b;
$num = $datos['nombre'];
$sql = "SELECT * FROM `usuario` WHERE `usuario`.`nombre`= '$num' ";
$result =$b->Consultar_BD($sql);
$row = mysql_fetch_array($result);
$salida = '<input type="text" value = '.$row[0].'>';
$respuesta = new xajaxResponse();
//escribimos en la capa con id="respuesta" el texto que aparece en $salida
$respuesta->addAssign("respuesta","innerHTML",$salida);

//tenemos que devolver la instanciación del objeto xajaxResponse
return $respuesta;
}

$xajax->registerFunction("BD");
$xajax->processRequests();

?>


<head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<?php
$xajax->printJavascript("xajax/");
?>
</head>

<body>
<div id="respuesta">
<form name="formu">
<input name="nombre" type="text" />
<input type="button" value="Mandar" onClick="xajax_BD(xajax.getFormValues('formu'))" />
</form>
</div>
</body>
</html>