Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Lio con clases

Estas en el tema de Lio con clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a ver si me podeis ayudar .TEngo lo siguiente class BaseDatos{ var $tipo;//Contendra el tipo de BD function BaseDatos($tipo){ $this->tipo=$tipo;//Asignamos el tipo de DB ...
  #1 (permalink)  
Antiguo 22/05/2005, 10:04
Avatar de yo12345  
Fecha de Ingreso: mayo-2005
Mensajes: 11
Antigüedad: 19 años, 7 meses
Puntos: 1
Lio con clases

Hola a ver si me podeis ayudar .TEngo lo siguiente
class BaseDatos{
var $tipo;//Contendra el tipo de BD

function BaseDatos($tipo){
$this->tipo=$tipo;//Asignamos el tipo de DB que es
}
function conex ($servidor,$usuario,$pass,$database,$debug){
$conn = &ADONewConnection($this->tipo);
$conn->debug = $debug;
if (!($conn->Connect($servidor,$usuario,$pass,$database))){
print("<p>Error conectando con la base de datos.<br />");
print($conn->ErrorMsg()); // retorna el error producido
print("</p>");
exit();
}
return $conn;
}
function desconex($conn){
$conn->close();
}

}
class mssqlBD extends BaseDatos{

var $conn;
function mssqlBD(){

$this->BaseDatos(DRIVER); //Driver es una cte
}

Cuando creo un objeto mysqlBD, $mysql=new mysqlBD(); ,me aparece un warning que trae "Missing argument 1 for basedatos()"; en la linea marcada como roja . Alguien sabe por que puede ser ?
POr cierto la costante driver la tengo definida de la siguiente forma
define ("DRIVER","mssqlpo");
  #2 (permalink)  
Antiguo 22/05/2005, 16:25
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 21 años, 2 meses
Puntos: 1
te esta diciendo que no estás pasando el argumento necesario al constructor.

saludos
  #3 (permalink)  
Antiguo 23/05/2005, 07:59
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 21 años, 5 meses
Puntos: 0
Al ejecutarse la clase mssqlBD extendida de BaseDatos, se ejecuta el contructor de la clase primaria, por lo que faltaría pasarle el parametro a la definición:

$mysql=new mysqlBD(DRIVER);

Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:48.