Quiero crear una pequeña aplicacion que tenga Login y que los datos esten almacenados en una base de datos MySQL. Hasta el momento no tenia problemas cuando lo hacia de manera funcional, pero he estado leyendo y algunos dicen que ese tipo de programación es obsoleta o antigua, cosas asi por el estilo, que ahora es MVC y eso creo que para mayor facilidad es con Programación Orientada a Objetos.
entonces lo que hize fue lo siguiente, cree una clase para las conexiones MySQL, ya que esos procesos se repiten demasiado, entonces la reutilizacion de codigo es importante, ademas si quisiera hacer un ajuste tendria que hacerlo a una sola parte (la clase), no tendría que estar cambiando en varios archivos.
después cree otra clase llamada usuarios, que es la que permite iniciar sesión cerrar sesión, crear usuarios etc... Entonces estuve mirando y vi que la clase utilizaba código MySQL entonces intente crear un objeto para que manejara el objeto los fragmentos de código para la conexión modificación MySQL !! pero me da error, al intentar manejar un objeto dentro de un metodo, me dice que no reconoce el meto que llamo!! aca pongo los codigos!!! si alguien me puede ayudar gracias!!!
Código PHP:
<?php
class DB_MySQL {
var $servidor;
var $nombreBD;
var $nombreDeUsuario;
var $contrasena;
var $enlace;
var $resultado;
var $filas;
var $consulta;
public function DB_MySQL($servidor,$nombreBD,$nombreDeUsuario,$contrasena){
$this->servidor=$servidor;
$this->nombreBD=$nombreBD;
$this->nombreDeUsuario=$nombreDeUsuario;
$this->contrasena=$contrasena;
}
public function conectarBD(){
if($enlace=mysql_connect($this->servidor, $this->nombreDeUsuario, $this->contrasena)){
if(mysql_select_db($this->nombreBD,$enlace)){
$this->enlace=$enlace;
}else{
echo "Error conectando con la base de datos";
exit();
}
}else{
echo "Error al enlazar al Servidor!";
exit();
}
}
public function consultarBD($sentenciaSQL){
$this->consulta=mysql_query($sentenciaSQL,$this->enlace);
}
public function obtenerResultado(){
$this->resultado=mysql_fetch_array($this->consulta);
return $this->resultado;
}
public function consulta($sentenciaSQL){
return mysql_query($sentenciaSQL,$this->enlace);
}
public function obtenerFilas(){
$this->filas = mysql_num_rows($this->consulta,$this->enlace);
return $this->filas ;
}
public function liberarConsulta(){
mysql_free_result($this->consulta);
}
public function desconectarDB(){
mysql_close($this->enlace);
}
}
?>
Código PHP:
<?php
include_once 'include/config.php';
include_once 'include/clases.php';
$Mysql=new DB_MySQL("localhost","siteweb","root","root");
$Mysql->conectarBD();
class Usuario {
function __construct(){
//inicializo el objeto aca???? :S
}
public function check_login($emailusername, $password)
{
$password = md5($password);
$result = $Mysql->consultarBD("SELECT uid from users WHERE email = '$emailusername' or username='$emailusername' and password = '$password'");
$user_data = $Mysql->obtenerResultado();
if ($Mysql->obtenerFilas() == 1)
{
$_SESSION['login'] = true;
$_SESSION['uid'] = $user_data['uid'];
return TRUE;
}
else
{
return false;
}
}
public function get_session()
{
return $_SESSION['login'];
}
public function user_logout() {
$_SESSION['login'] = FALSE;
session_destroy();
}
}
?>