Clase PHP para trabajar con Mysql

EL siguiente código es una clase escrita en PHP5 con la que podremos realizar las operaciones básicas de lectura sobre una base de datos Mysql.
Estas operaciones incluyen: Conexión a Mysql, listado de tablas y presentación de registros por pantalla.
Para realizar las anteriores operaciones, usaremos algunas variables en la que guardar los datos de conexión con Mysql, y las funciones básicas de PHP para realizar operaciones con Mysql.

Clase mysql.php

<?
class mysql
	{
	private $host="localhost";
	private $user="root";
	private $clave="root";
	private $bd="empresas";
	private $conexion;	//Se almacenará el apuntador a la conexion
	
	
	public function conectar()
		{
		$this->conexion=mysql_connect($this->host,$this->user,$this->clave);
    		mysql_select_db($this->bd,$this->conexion);
		}
	
	public function listar_empresas()
		{
		$consulta="select nombre from empresas";
		$this->conectar();
		$resultado=mysql_query($consulta);
		$this->cerrar();
		while ($r=mysql_fetch_array($resultado))
			echo "<li><a href=\"empresa.php?empresa=".$r['nombre']."\" alt=\"".$r['nombre']."\" title=\"".$r['nombre']."\">".$r['nombre']."</a></li>";
        	unset ($resultado);
		unset ($consulta);
		}
	
	public function listar_categorias()
		{
		$consulta="select distinct(categoria) from empresa_categoria";
		$this->conectar();
		$resultado=mysql_query($consulta);
		$this->cerrar();
		while ($r=mysql_fetch_array($resultado))
			echo "<a href=\"buscar.php?categoria=".$r['categoria']."\" alt=\"".$r['categoria']."\" title=\"".$r['categoria']."\">".$r['categoria']."</a>, ";
        	unset ($resultado);
		unset ($consulta);
		}
		
	
	public function mostrar_empresa($nombre)
		{
		$consulta="select * from empresas where nombre like '$nombre'";
		$this->conectar();
		mysql_query($consulta);
		$resultado=mysql_query($consulta);
		$r=mysql_fetch_array($resultado);
		unset ($resultado);
		unset ($consulta);
		return $r;
		}
	
	public function comprobar_mail_usuario($empresa)
		{
		$consulta="select id_usuario from usuarios where usuario like '".$empresa['usuario']."' or email like '".$empresa['email']."'";
		$this->conectar();
		mysql_query($consulta);
		$resultado=mysql_query($consulta);
		$r=mysql_fetch_array($resultado);
			if ($r['id_usuario']<>"")
				{
				unset ($resultado);
				unset ($consulta);
				unset ($r);
				return FALSE;
				}
			else 
				{
				unset ($resultado);
				unset ($consulta);
				unset ($r);
				return TRUE;
				}
		}

	public function comprobar_empresa($empresa)
		{
		$consulta="select id_empresa from empresas where nombre like '".$empresa['nombre']."'";
		$this->conectar();
		mysql_query($consulta);
		$resultado=mysql_query($consulta);
		$r=mysql_fetch_array($resultado);
		if ($r['id_empresa']<>"")
			{
			unset ($resultado);
			unset ($consulta);
			unset ($r);
			return FALSE;
			}
		else 
			{
			unset ($resultado);
			unset ($consulta);
			unset ($r);
			return TRUE;
			}
		}
	
	
	public function insertar_usuario($empresa)
		{
		$this->conectar();
		$consulta="INSERT INTO `usuarios` (`id_usuario`, `usuario`, `clave`, `email`, `activo`) VALUES
		('NULL', 
		'".$empresa['usuario']."', 
		'".$empresa['clave']."', 
		'".$empresa['email']."', 
		0);";
		mysql_query($consulta);
		$consulta="select id_usuario from usuarios where usuario like '".$empresa['usuario']."'";
		$resultado=mysql_query($consulta);
		$r=mysql_fetch_array($resultado);
		$this->cerrar();
		unset ($resultado);
		unset ($consulta);
		return ($r['id_usuario']);
		}
	
	function insertar_empresa($empresa)
		{
		$id=$this->insertar_usuario($empresa);
		$this->conectar();
		$consulta="INSERT INTO  `empresas`.`empresas` (
		`id_empresa` ,
		`id_usuario` ,
		`nombre` ,
		`descripcion_corta` ,
		`descripcion` ,
		`telefono` ,
		`direccion` ,
		`cp` ,
		`localidad` ,
		`direccion_web` ,
		)
		VALUES (
		'NULL',
		$id,
		'".$empresa['nombre']."',
		'".$empresa['descripcion_corta']."',
		'".$empresa['descripcion']."',
		".$empresa['telefono'].",
		'".$empresa['direccion']."',
		".$empresa['cp'].",
		'".$empresa['localidad']."',
		'".$empresa['direccion_web']."'
		);";
		mysql_query($consulta);
		$consulta="select id_empresa from empresas where nombre like '".$empresa['nombre']."'";
		$resultado=mysql_query($consulta);
		$r=mysql_fetch_array($resultado);
		$this->cerrar();
		$this->insertar_categorias($empresa['categorias'],$r['id_empresa']);
		unset ($consulta);
		unset ($nombre);
		}
	
	function insertar_categorias($categorias,$id)
		{
		$aux=explode(",",$categorias);
		if (count($aux)<1)
			$aux[0]=$categorias;
		foreach ($aux as $categoria)
			{
			$this->conectar();
			$consulta="INSERT INTO  `empresas`.`empresa_categoria` (
			`id_empresa_categoria` ,
			`id_empresa` ,
			`categoria`
			)
			VALUES (
			'NULL' ,  
			$id,  
			'$categoria'
			);
			";
			mysql_query($consulta);
			$this->cerrar();
			}
		unset ($aux);
		unset ($consulta);
		}				
	public function cerrar ()
		{
		@mysql_close($this->conexion);
		}
	}	
?>

6 Responses to “ Clase PHP para trabajar con Mysql ”

  1. Felipe dice:

    Interesante código, pero quizás podrías mejorarlo un poco si la clase la llamas “Empresa”, ya que toda la clase trabaja con la tabla empresa o derivadas.

    También creo que podrías tener otra clase llamada “Config” por ejemplo, que extendería “Empresa” para obtener los datos de conexión a Mysql.. De esta forma si creas otra clase para trabajar con otras tablas, no tendrás que definir los datos de conexión de nuevo, solo extender la clase “Config”.

  2. Álvaro Carneiro dice:

    No me gusta que la clase sea para funcion especifica, osea, sirve solo para lo que esta ahí puesto, además realiza una conexión a la base de datos por cada consulta. Falta a mejorar

    • jlmora dice:

      Es una clase didáctica, en este curso no se abarco la programación orientada a objetos, tan sólo se ha explicado de forma teórica y para ello use ese código…

      Si alguién quiere participar en el blog y poner sus explicaciones por mi encantado.

  3. jlmora dice:

    Es una clase didáctica, en este curso no se abarco la programación orientada a objetos, tan sólo se ha explicado de forma teórica y para ello use ese código…

    Si alguién quiere participar en el blog y poner sus explicaciones por mi encantado.

  4. felipe dice:

    Estimado:

    Y como lo llamo desde un select? en caso que este cargando uno :O

Deja un comentario