bueno nuevamente aki por el foro de poo e leido algunos tutoriales y con ayuda de ustedes cree la primera clase q coloq hac algun tiempo era una clase super sencilla ahorita dentro de los tutoriales q he estado leyendo esta la herencia y quic practicarla un poco pero no estoy seguro de si lo hic bien esta funciona pero esta bien?? q pudiera mejorar?? por favor es q estoy mal acostumbrado a la programacion estructurada aki el codigo es una clase asi como la q habia puesto antes de conexion pero le agreg el introducir datos para ver si aprendi algo de lo de trabajar con herencia espero sus respuestas gracias de antemano
Código PHP:
class conexion
{
protected $mysqlHost;
protected $mysqlUser;
protected $mysqlPass;
protected $db;
protected $connect;
protected $query;
protected $row;
public function __construct($mysqlHost="localhost",$mysqlUser="root",$mysqlPass="") #colocamos el usuario normalmente utilizado
{
$this->mysqlHost=$mysqlHost;
$this->mysqlUser=$mysqlUser;
$this->mysqlPass=$mysqlPass;
$this->conectar();
}
protected function conectar()
{
$this->connect=@mysql_connect($this->mysqlHost,$this->mysqlUser,$this->mysqlPass) or die ("no se pudo conectar con el servidor ".mysql_error());
}
public function selectDb($db="db") #colocamos la base de datos normalmente utilizada
{
@mysql_select_db($db) or die ("Error al conectar con base de datos ".mysql_error());
}
public function ejecutarSentencia($query,$result=false)#si result es true trae el resultado si es falso trae el Resource id
{
$this->query=mysql_query($query) or die (mysql_error());
if($result==true){
$this->mostrarResultados($this->query);
return $this->result;
}else{
return $this->query;
}
}
public function mostrarResultados($query)
{
while($this->row=mysql_fetch_assoc($query))
{
$this->result[]=$this->row;
}
return $this->result;
}
public function liberar()
{
mysql_free_result();
}
public function desconectar()
{
mysql_close();
}
}
class insertar extends conexion{
protected $campos;
protected $valores;
protected $table;
protected $values;
protected $camposImo;
public function __construct($tabla="",$campos="",$valores=""){
if(empty($tabla) || empty($campos) || empty($valores)){
echo "Debe inicializar la clase para insertar datos";
return false;
}
$this->tabla=$tabla;
$this->campos=$campos;
$this->valores=$valores;
$this->tratarDatos();
}
protected function tratarDatos(){
$this->tabla=htmlentities(trim($this->tabla));
foreach($this->campos as $id=>$values){
$this->campos[$id]=htmlentities(trim($values));
$this->valores[$id]=htmlentities(trim("'".$this->valores[$id]."'"));
}
$this->camposImo=implode(",",$this->campos);
$this->value=implode(",",$this->valores);
$this->insertar();
}
protected function insertar(){
parent::ejecutarSentencia("INSERT INTO ".$this->tabla." (".$this->camposImo.") VALUES (".$this->value.");") or die (mysql_error());
}
}
##############################################################################
################### pruebas a la clase #######################################
##############################################################################
$campos=array("nombre","apellido","cedula","correo");
$valores=array("nombre","apellido",12345647841,"correo");
$conect=new conexion();
$conect->selectDb("db");
$insertar=new insertar("tabla",$campos,$valores);
$result=$conect->ejecutarSentencia("select * from tabla",true);