Return to Snippet

Revision: 27509
at June 12, 2010 11:43 by Myrddin


Updated Code
<?php
class MySQL{
    //variables conexion con la base de datos / servidor
    private $servidor;					//nombre de host
    private $base_de_dades;				// nombre de la base de datos
    private $usuari;					// nombre de usuario base de datos
    private $contrasenya;				//contraseña acceso base de datos
    //variables fin conexion con la base de datos / servidor
    
    //conexion con el servidor
    private $connect;					//guarda la conexion con el MySQL host.
    private $persistente;				//boolean para saber si la conexion sera persistente o no.
    //fin conexion con el servidor

	//consultas base de datos
    private $consulta;					//guarda la consulta MySQL.
    private $resultat;					//guarda resultado de la consulta MySQL.
    private $numfilas;					//numero de filas de una consulta MySQL.
    private $numcampos;					//numero de capos de una consulta MySQL.
    //fin consultas base de datos
    
   //creacion consulta INSERT / UPDATE
    private $array_key;					//guarda el nombre de los campos MySQL.
	private $array_valor;				//guarda valores associados a los campos MySQL.
	
	private $nombre_campo;				//guarda los campos preparados para la consulta MySQL.
	private $valor_campo;				//guarda los valores preparados para la consulta MySQL.
	//fin creacion consulta INSERT / UPDATE
	
	//variables adicionales
	private $error; 					//guarda el ultimo error generado.
	//fin variables adicionales
	

    function __construct($servidor, $usuari , $contrasenya , $base_de_dades = "", $persist = False){
        //Damos valores a las variables de conexion (por defecto o no).    	
    	//Determinamos si la conexion sera persistente o no.
        $this -> servidor        = ( strlen($servidor) > 0 )? 	 	$servidor 		: "localhost";
        $this -> usuari 		 = ( strlen($usuari) > 0 )?  		$usuari 		: "";
        $this -> contrasenya	 = ( strlen($contrasenya) > 0 )?  	$contrasenya 	: "";
        $this -> base_de_dades   = ( strlen($base_de_dades) > 0 )? 	$base_de_dades 	: "";
        $this -> persistente     = $persist;
        $this -> error           = Null;
    }

    function Conectar(){
        //Establece la conexion con el servidor de la base de datos.
    	if( $this -> persistente ){
    		//Esta conexion la cierra el servidor (mysql_close no funciona).
    		$this -> connect = @mysql_pconnect( $this -> servidor, $this -> usuari, $this -> contrasenya );
	   	}else{
	   		$this -> connect = @mysql_connect( $this -> servidor, $this -> usuari, $this -> contrasenya );   		
	   	}
        
        //Verifica si la conexion se ha echo con el servidor.
	   	if( !$this -> connect ){
            $this -> error = mysql_error();
            return( False );
	   	}else{
 			if( strlen($this -> base_de_dades) > 0 ){$this -> SeleccionarBaseDatos();}
	   		return( $this -> connect );
	    }
    }
    
    //Selecciona la base de datos a la cual se tiene que conectar.
	//Comprueba que se a hecho correctamente.
    function SeleccionarBaseDatos( $bd = "", $con = null ){
		if( strlen($bd) > 0 ){$this -> base_de_dades = $bd;}
		if( isset($con) ){$this -> connect = $con;}
		
    	if( !mysql_select_db($this -> base_de_dades, $this -> connect) ){
	   		$this -> error = mysql_error();
    		return( False );
    	}else{
    	   return( True );
        }
    }

	//Envia una consulta al servidor de la base de datos.
	//Compruba que la consulta se ha resulto con exito. 
	function Consulta( $consulta_exe, $con = null ){
    	
    	//compruba que la conulsta enviada sea valida.
    	if( empty($consulta_exe) ){
    	   $this -> error = "La consulta a tramitar no es valida.<br />";
           return( False );  		
    	}
    	
    	//Comprueba que la consulta se ha echo.
        $this -> consulta = ( $con != null )? @mysql_query( $consulta_exe, $con ) : @mysql_query( $consulta_exe, $this -> connect );
        if(!$this -> consulta){
        	$this -> error = mysql_error();
    		return( False );
        }else{
        	return( $this -> consulta );
	   	}
    }
    
    function UltimoID(){
    	//Devuelve el ultimo ID generado por un INSERT
    	//en un campo de auto incremento.
		return( mysql_insert_id() );
	}

    function VerDatos( $ver_consulta, $tipo = "" ){
    	//Devuelve el resultado/las filas de la consulta 
        //que se ha echo a la base de datos.
    	if( !$ver_consulta ){
       		$this -> error = "Parametro invalido enviado para mostrar los datos.";
   			return(False);
    	}
    	
   		if( $tipo == "MYSQL_ASSOC" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_ASSOC );}
   		if( $tipo == "MYSQL_NUM" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_NUM );}
   		if( $tipo == "MYSQL_BOTH" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_BOTH );}
   		if( $tipo == "" ){$this -> resultat = @mysql_fetch_object( $ver_consulta );}    
			   
	   //Comprueba si la consulta ha tenido existe.
    	if($this -> resultat){
   			return( $this -> resultat );
   		}
   		else{
 			$this -> error = mysql_error();
  			return( False );
   		}
    }
    
    function NumFilas( $con = Null )
    {
    	//Devuelve el numero de filas de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
        $this -> numfilas = @mysql_num_rows( $con );
        
        if( !$this -> numfilas )
        {
  			$this -> error = mysql_error();
        	return( false );        	
        }else{
        	return( $this -> numfilas );
       	}
    }
    
    function NumCampos( $con = Null )
    {
    	//Devuelve el numero de campos de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
    	$this -> numcampos = mysql_num_fields( $con );
    	
    	if( !$this->numcampos ){
        	$this -> error = mysql_error();
        	return( False );        	
        }else{
        	return( $this->numcampos );
       	}
    }
    
    function crearDB( $db ){
    	if(function_exists("mysql_create_db")){
    		if(!@mysql_create_db($db)){
  				$this -> error = mysql_error();
    			return(False);
    		}else{
    			return(True);
    		}
   		}else{
   			$sql = "CREATE DATABASE `".$db."`";
   			if( !$this -> Consulta($sql) ){return( False );}
   			else{return( True );}
   		}
    }
    
    function InsertarValoresSQL( $array_insert, $campo_insert ){
        //Genera la consulta MySQL que se envia al servidor (INSERTAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden 
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $array_insert );
		$this -> array_valor = $array_insert;	
		
		for($i = 0;$i < count($this->array_valor);$i++){
			$this -> array_valor[$this -> array_key[$i]] = (is_numeric($this -> array_valor[$this -> array_key[$i]]))? $this -> array_valor[$this -> array_key[$i]] : "'" . $this -> limpiar($this -> array_valor[$this -> array_key[$i]]) . "'";
		}	
		
		for($i = 0;$i < count($this->array_key);$i++){
			$this->array_key[$i] = "`" . $this->array_key[$i] . "`";
		}
		
		$this->nombre_campo = implode( ",", $this -> array_key);
		$this->valor_campo = implode( ",", $this -> array_valor);
		
		$sql = "INSERT INTO `" . $campo_insert."` (" . $this -> nombre_campo . ")";
		$sql .= " VALUES(" . $this -> valor_campo . ");";
		return( $sql );
	}
	
	function ActualizarValoresSQL( $nuevos_valores, $tabla, $where ){
	    //Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $nuevos_valores );
		$this -> array_valor = $nuevos_valores;	
		
		for($ind = 0; $ind < count( $this -> array_key ); $ind++){
			$valores[$ind] = "`" . $this -> array_key[$ind] . "` = '" . $this->array_valor[$this -> array_key[$ind]] . "'";
		}
		
		$valores = implode( ",", $valores );
		
		$sql = "UPDATE `" . $tabla . "` SET " . $valores;
		$sql .= " WHERE " . $where . ";";
		return( $sql );
		
	}
	
	function VerError()
	{
	 	//Devuelve el ultimo error generado
	 	//si este existe.
	 	if( $this->error != Null ){
	 		return( $this->error );
 		}
 		else{
 			return( False );
 		}
	}
	
	function limpiar($variable){
		//para escapar los caracteres especiales.
		if( get_magic_quotes_gpc() ){$variable = mysql_real_escape_string(stripslashes(trim($variable)));}
		else{$variable = mysql_real_escape_string(trim($variable));}
		return( $variable );
	}
		
	function CerrarConexion()
    {
        //Cierra la conexion no-persistente con el servidor MySQL.
        if(!@mysql_close($this->connect)){
 			$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }

    function LimpiarConsulta(){
        //Libera la memoria associoada a la variable donde se guarda la consulta.
        if(!@mysql_free_result($this->consulta))
        {	
	   		$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }
}

$config = array();
$config["MYSQL"]["SERVER"]      = "127.0.0.1";
$config["MYSQL"]["USER"]        = "root";
$config["MYSQL"]["PASS"]        = "";
$config["MYSQL"]["DATABASE"]    = "web";

$mysql = new MySQL( $config["MYSQL"]["SERVER"], $config["MYSQL"]["USER"], $config["MYSQL"]["PASS"], $config["MYSQL"]["DATABASE"]);
if( !$mysql -> Conectar() ){
    exit( $mysql -> VerError() );
}

/*********************************
* Una consulta a la base de datos
*********************************/
$sql = "SELECT `metatags`.`type`, `metatags`.`name`, `metatags`.`value` FROM `metatags`;";
if( !($query = $mysql ->Consulta($sql)) ){
    exit( $mysql -> VerError() );
}

while( $valor = $mysql -> VerDatos($query) ){
    echo "Meta Type: " . $valor -> type . "<br />";
    echo "Meta Name: " . $valor -> name . "<br />";
    echo "Meta value: " . $valor -> value . "<br />";
    echo "--------------------------------------------------------<br />";
}

/*********************************
* Insertar en una tabla
*********************************/
$table = "metatags";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "all";

$sql = $mysql ->InsertarValoresSQL( $reg, $table);
echo $sql . "<br />";
if( /*!$mysql -> Consulta($sql)*/ !true ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows insert into DB.<br />";
}

/***************************************
* Actualizar valores de una tabla tabla
***************************************/
$table = "metatags";
$where = "value = 'all' AND name = 'robots'";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "index";

$sql = $mysql->ActualizarValoresSQL( $reg, $table, $where );
echo $sql . "<br />";
if( !$mysql -> Consulta($sql) ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows updated.<br />";
}

$mysql->LimpiarConsulta();
$mysql->CerrarConexion();
?>

Revision: 27508
at June 12, 2010 11:41 by Myrddin


Updated Code
<?php
class MySQL{
    //variables conexion con la base de datos / servidor
    private $servidor;					//nombre de host
    private $base_de_dades;				// nombre de la base de datos
    private $usuari;					// nombre de usuario base de datos
    private $contrasenya;				//contraseña acceso base de datos
    //variables fin conexion con la base de datos / servidor
    
    //conexion con el servidor
    private $connect;					//guarda la conexion con el MySQL host.
    private $persistente;				//boolean para saber si la conexion sera persistente o no.
    //fin conexion con el servidor

	//consultas base de datos
    private $consulta;					//guarda la consulta MySQL.
    private $resultat;					//guarda resultado de la consulta MySQL.
    private $numfilas;					//numero de filas de una consulta MySQL.
    private $numcampos;					//numero de capos de una consulta MySQL.
    //fin consultas base de datos
    
   //creacion consulta INSERT / UPDATE
    private $array_key;					//guarda el nombre de los campos MySQL.
	private $array_valor;				//guarda valores associados a los campos MySQL.
	
	private $nombre_campo;				//guarda los campos preparados para la consulta MySQL.
	private $valor_campo;				//guarda los valores preparados para la consulta MySQL.
	//fin creacion consulta INSERT / UPDATE
	
	//variables adicionales
	private $error; 					//guarda el ultimo error generado.
	//fin variables adicionales
	

    function __construct($servidor, $usuari , $contrasenya , $base_de_dades = "", $persist = False){
        //Damos valores a las variables de conexion (por defecto o no).    	
    	//Determinamos si la conexion sera persistente o no.
        $this -> servidor        = ( strlen($servidor) > 0 )? 	 	$servidor 		: "localhost";
        $this -> usuari 		 = ( strlen($usuari) > 0 )?  		$usuari 		: "";
        $this -> contrasenya	 = ( strlen($contrasenya) > 0 )?  	$contrasenya 	: "";
        $this -> base_de_dades   = ( strlen($base_de_dades) > 0 )? 	$base_de_dades 	: "";
        $this -> persistente     = $persist;
        $this -> error           = Null;
    }

    function Conectar(){
        //Establece la conexion con el servidor de la base de datos.
    	if( $this -> persistente ){
    		//Esta conexion la cierra el servidor (mysql_close no funciona).
    		$this -> connect = @mysql_pconnect( $this -> servidor, $this -> usuari, $this -> contrasenya );
	   	}else{
	   		$this -> connect = @mysql_connect( $this -> servidor, $this -> usuari, $this -> contrasenya );   		
	   	}
        
        //Verifica si la conexion se ha echo con el servidor.
	   	if( !$this -> connect ){
            $this -> error = mysql_error();
            return( False );
	   	}else{
 			if( strlen($this -> base_de_dades) > 0 ){$this -> SeleccionarBaseDatos();}
	   		return( $this -> connect );
	    }
    }
    
    //Selecciona la base de datos a la cual se tiene que conectar.
	//Comprueba que se a hecho correctamente.
    function SeleccionarBaseDatos( $bd = "", $con = null ){
		if( strlen($bd) > 0 ){$this -> base_de_dades = $bd;}
		if( isset($con) ){$this -> connect = $con;}
		
    	if( !mysql_select_db($this -> base_de_dades, $this -> connect) ){
	   		$this -> error = mysql_error();
    		return( False );
    	}else{
    	   return( True );
        }
    }

	//Envia una consulta al servidor de la base de datos.
	//Compruba que la consulta se ha resulto con exito. 
	function Consulta( $consulta_exe, $con = null ){
    	
    	//compruba que la conulsta enviada sea valida.
    	if( empty($consulta_exe) ){
    	   $this -> error = "La consulta a tramitar no es valida.<br />";
           return( False );  		
    	}
    	
    	//Comprueba que la consulta se ha echo.
        $this -> consulta = ( $con != null )? @mysql_query( $consulta_exe, $con ) : @mysql_query( $consulta_exe, $this -> connect );
        if(!$this -> consulta){
        	$this -> error = mysql_error();
    		return( False );
        }else{
        	return( $this -> consulta );
	   	}
    }
    
    function UltimoID(){
    	//Devuelve el ultimo ID generado por un INSERT
    	//en un campo de auto incremento.
		return( mysql_insert_id() );
	}

    function VerDatos( $ver_consulta, $tipo = "" ){
    	//Devuelve el resultado/las filas de la consulta 
        //que se ha echo a la base de datos.
    	if( !$ver_consulta ){
       		$this -> error = "Parametro invalido enviado para mostrar los datos.";
   			return(False);
    	}
    	
   		if( $tipo == "MYSQL_ASSOC" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_ASSOC );}
   		if( $tipo == "MYSQL_NUM" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_NUM );}
   		if( $tipo == "MYSQL_BOTH" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_BOTH );}
   		if( $tipo == "" ){$this -> resultat = @mysql_fetch_object( $ver_consulta );}    
			   
	   //Comprueba si la consulta ha tenido existe.
    	if($this -> resultat){
   			return( $this -> resultat );
   		}
   		else{
 			$this -> error = mysql_error();
  			return( False );
   		}
    }
    
    function NumFilas( $con = Null )
    {
    	//Devuelve el numero de filas de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
        $this -> numfilas = @mysql_num_rows( $con );
        
        if( !$this -> numfilas )
        {
  			$this -> error = mysql_error();
        	return( false );        	
        }else{
        	return( $this -> numfilas );
       	}
    }
    
    function NumCampos( $con = Null )
    {
    	//Devuelve el numero de campos de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
    	$this -> numcampos = mysql_num_fields( $con );
    	
    	if( !$this->numcampos ){
        	$this -> error = mysql_error();
        	return( False );        	
        }else{
        	return( $this->numcampos );
       	}
    }
    
    function crearDB( $db ){
    	if(function_exists("mysql_create_db")){
    		if(!@mysql_create_db($db)){
  				$this -> error = mysql_error();
    			return(False);
    		}else{
    			return(True);
    		}
   		}else{
   			$sql = "CREATE DATABASE `".$db."`";
   			if( !$this -> Consulta($sql) ){return( False );}
   			else{return( True );}
   		}
    }
    
    function InsertarValoresSQL( $array_insert, $campo_insert ){
        //Genera la consulta MySQL que se envia al servidor (INSERTAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden 
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $array_insert );
		$this -> array_valor = $array_insert;	
		
		for($i = 0;$i < count($this->array_valor);$i++){
			$this -> array_valor[$this -> array_key[$i]] = (is_numeric($this -> array_valor[$this -> array_key[$i]]))? $this -> array_valor[$this -> array_key[$i]] : "'" . $this -> limpiar($this -> array_valor[$this -> array_key[$i]]) . "'";
		}	
		
		for($i = 0;$i < count($this->array_key);$i++){
			$this->array_key[$i] = "`" . $this->array_key[$i] . "`";
		}
		
		$this->nombre_campo = implode( ",", $this -> array_key);
		$this->valor_campo = implode( ",", $this -> array_valor);
		
		$sql = "INSERT INTO `" . $campo_insert."` (" . $this -> nombre_campo . ")";
		$sql .= " VALUES(" . $this -> valor_campo . ");";
		return( $sql );
	}
	
	function ActualizarValoresSQL( $nuevos_valores, $tabla, $where ){
	    //Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $nuevos_valores );
		$this -> array_valor = $nuevos_valores;	
		
		for($ind = 0; $ind < count( $this -> array_key ); $ind++){
			$valores[$ind] = "`" . $this -> array_key[$ind] . "` = '" . $this->array_valor[$this -> array_key[$ind]] . "'";
		}
		
		$valores = implode( ",", $valores );
		
		$sql = "UPDATE `" . $tabla . "` SET " . $valores;
		$sql .= " WHERE " . $where . ";";
		return( $sql );
		
	}
	
	function VerError()
	{
	 	//Devuelve el ultimo error generado
	 	//si este existe.
	 	if( $this->error != Null ){
	 		return( $this->error );
 		}
 		else{
 			return( False );
 		}
	}
	
	function limpiar($variable){
		//para escapar los caracteres especiales.
		if( get_magic_quotes_gpc() ){$variable = mysql_real_escape_string(stripslashes(trim($variable)));}
		else{$variable = mysql_real_escape_string(trim($variable));}
		return( $variable );
	}
		
	function CerrarConexion()
    {
        //Cierra la conexion no-persistente con el servidor MySQL.
        if(!@mysql_close($this->connect)){
 			$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }

    function LimpiarConsulta(){
        //Libera la memoria associoada a la variable donde se guarda la consulta.
        if(!@mysql_free_result($this->consulta))
        {	
	   		$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }
}

$config = array();
$config["MYSQL"]["SERVER"]      = "127.0.0.1";
$config["MYSQL"]["USER"]        = "root";
$config["MYSQL"]["PASS"]        = "";
$config["MYSQL"]["DATABASE"]    = "web";

$mysql = new MySQL( $config["MYSQL"]["SERVER"], $config["MYSQL"]["USER"], $config["MYSQL"]["PASS"], $config["MYSQL"]["DATABASE"]);
if( !$mysql -> Conectar() ){
    exit( $mysql -> VerError() );
}

/*********************************
* Una consulta a la base de datos
*********************************/
$sql = "SELECT `metatags`.`type`, `metatags`.`name`, `metatags`.`value` FROM `metatags`;";
if( !($query = $mysql ->Consulta($sql)) ){
    exit( $mysql -> VerError() );
}

while( $valor = $mysql -> VerDatos($query) ){
    echo "Meta Type: " . $valor -> type . "<br />";
    echo "Meta Name: " . $valor -> name . "<br />";
    echo "Meta value: " . $valor -> value . "<br />";
    echo "--------------------------------------------------------<br />";
}

/*********************************
* Insertar en una tabla
*********************************/
$table = "metatags";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "all";

$sql = $mysql ->InsertarValoresSQL( $reg, $table);
echo $sql . "<br />";
if( /*!$mysql -> Consulta($sql)*/ !true ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows insert into DB.<br />";
}

/***************************************
* Actualizar valores de una tabla tabla
***************************************/
$table = "metatags";
$where = "value = 'all' AND name = 'robots'";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "index";

$sql = $mysql->ActualizarValoresSQL( $reg, $table, $where );
echo $sql . "<br />";
if( !$mysql -> Consulta($sql) ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows updated.<br />";
}
?>

Revision: 27507
at June 12, 2010 11:40 by Myrddin


Initial Code
<?php
class MySQL{
    //variables conexion con la base de datos / servidor
    private $servidor;					//nombre de host
    private $base_de_dades;				// nombre de la base de datos
    private $usuari;					// nombre de usuario base de datos
    private $contrasenya;				//contraseña acceso base de datos
    //variables fin conexion con la base de datos / servidor
    
    //conexion con el servidor
    private $connect;					//guarda la conexion con el MySQL host.
    private $persistente;				//boolean para saber si la conexion sera persistente o no.
    //fin conexion con el servidor

	//consultas base de datos
    private $consulta;					//guarda la consulta MySQL.
    private $resultat;					//guarda resultado de la consulta MySQL.
    private $numfilas;					//numero de filas de una consulta MySQL.
    private $numcampos;					//numero de capos de una consulta MySQL.
    //fin consultas base de datos
    
   //creacion consulta INSERT / UPDATE
    private $array_key;					//guarda el nombre de los campos MySQL.
	private $array_valor;				//guarda valores associados a los campos MySQL.
	
	private $nombre_campo;				//guarda los campos preparados para la consulta MySQL.
	private $valor_campo;				//guarda los valores preparados para la consulta MySQL.
	//fin creacion consulta INSERT / UPDATE
	
	//variables adicionales
	private $error; 					//guarda el ultimo error generado.
	//fin variables adicionales
	

    function __construct($servidor, $usuari , $contrasenya , $base_de_dades = "", $persist = False){
        //Damos valores a las variables de conexion (por defecto o no).    	
    	//Determinamos si la conexion sera persistente o no.
        $this -> servidor        = ( strlen($servidor) > 0 )? 	 	$servidor 		: "localhost";
        $this -> usuari 		 = ( strlen($usuari) > 0 )?  		$usuari 		: "";
        $this -> contrasenya	 = ( strlen($contrasenya) > 0 )?  	$contrasenya 	: "";
        $this -> base_de_dades   = ( strlen($base_de_dades) > 0 )? 	$base_de_dades 	: "";
        $this -> persistente     = $persist;
        $this -> error           = Null;
    }

    function Conectar(){
        //Establece la conexion con el servidor de la base de datos.
    	if( $this -> persistente ){
    		//Esta conexion la cierra el servidor (mysql_close no funciona).
    		$this -> connect = @mysql_pconnect( $this -> servidor, $this -> usuari, $this -> contrasenya );
	   	}else{
	   		$this -> connect = @mysql_connect( $this -> servidor, $this -> usuari, $this -> contrasenya );   		
	   	}
        
        //Verifica si la conexion se ha echo con el servidor.
	   	if( !$this -> connect ){
            $this -> error = mysql_error();
            return( False );
	   	}else{
 			if( strlen($this -> base_de_dades) > 0 ){$this -> SeleccionarBaseDatos();}
	   		return( $this -> connect );
	    }
    }
    
    //Selecciona la base de datos a la cual se tiene que conectar.
	//Comprueba que se a hecho correctamente.
    function SeleccionarBaseDatos( $bd = "", $con = null ){
		if( strlen($bd) > 0 ){$this -> base_de_dades = $bd;}
		if( isset($con) ){$this -> connect = $con;}
		
    	if( !mysql_select_db($this -> base_de_dades, $this -> connect) ){
	   		$this -> error = mysql_error();
    		return( False );
    	}else{
    	   return( True );
        }
    }

	//Envia una consulta al servidor de la base de datos.
	//Compruba que la consulta se ha resulto con exito. 
	function Consulta( $consulta_exe, $con = null ){
    	
    	//compruba que la conulsta enviada sea valida.
    	if( empty($consulta_exe) ){
    	   $this -> error = "La consulta a tramitar no es valida.<br />";
           return( False );  		
    	}
    	
    	//Comprueba que la consulta se ha echo.
        $this -> consulta = ( $con != null )? @mysql_query( $consulta_exe, $con ) : @mysql_query( $consulta_exe, $this -> connect );
        if(!$this -> consulta){
        	$this -> error = mysql_error();
    		return( False );
        }else{
        	return( $this -> consulta );
	   	}
    }
    
    function UltimoID(){
    	//Devuelve el ultimo ID generado por un INSERT
    	//en un campo de auto incremento.
		return( mysql_insert_id() );
	}

    function VerDatos( $ver_consulta, $tipo = "" ){
    	//Devuelve el resultado/las filas de la consulta 
        //que se ha echo a la base de datos.
    	if( !$ver_consulta ){
       		$this -> error = "Parametro invalido enviado para mostrar los datos.";
   			return(False);
    	}
    	
   		if( $tipo == "MYSQL_ASSOC" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_ASSOC );}
   		if( $tipo == "MYSQL_NUM" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_NUM );}
   		if( $tipo == "MYSQL_BOTH" ){$this -> resultat = @mysql_fetch_array( $ver_consulta, MYSQL_BOTH );}
   		if( $tipo == "" ){$this -> resultat = @mysql_fetch_object( $ver_consulta );}    
			   
	   //Comprueba si la consulta ha tenido existe.
    	if($this -> resultat){
   			return( $this -> resultat );
   		}
   		else{
 			$this -> error = mysql_error();
  			return( False );
   		}
    }
    
    function NumFilas( $con = Null )
    {
    	//Devuelve el numero de filas de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
        $this -> numfilas = @mysql_num_rows( $con );
        
        if( !$this -> numfilas )
        {
  			$this -> error = mysql_error();
        	return( false );        	
        }else{
        	return( $this -> numfilas );
       	}
    }
    
    function NumCampos( $con = Null )
    {
    	//Devuelve el numero de campos de la consulta.
    	$con = ( isset($con) )? $con : $this -> consulta;
    	$this -> numcampos = mysql_num_fields( $con );
    	
    	if( !$this->numcampos ){
        	$this -> error = mysql_error();
        	return( False );        	
        }else{
        	return( $this->numcampos );
       	}
    }
    
    function crearDB( $db ){
    	if(function_exists("mysql_create_db")){
    		if(!@mysql_create_db($db)){
  				$this -> error = mysql_error();
    			return(False);
    		}else{
    			return(True);
    		}
   		}else{
   			$sql = "CREATE DATABASE `".$db."`";
   			if( !$this -> Consulta($sql) ){return( False );}
   			else{return( True );}
   		}
    }
    
    function InsertarValoresSQL( $array_insert, $campo_insert ){
        //Genera la consulta MySQL que se envia al servidor (INSERTAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden 
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $array_insert );
		$this -> array_valor = $array_insert;	
		
		for($i = 0;$i < count($this->array_valor);$i++){
			$this -> array_valor[$this -> array_key[$i]] = (is_numeric($this -> array_valor[$this -> array_key[$i]]))? $this -> array_valor[$this -> array_key[$i]] : "'" . $this -> limpiar($this -> array_valor[$this -> array_key[$i]]) . "'";
		}	
		
		for($i = 0;$i < count($this->array_key);$i++){
			$this->array_key[$i] = "`" . $this->array_key[$i] . "`";
		}
		
		$this->nombre_campo = implode( ",", $this -> array_key);
		$this->valor_campo = implode( ",", $this -> array_valor);
		
		$sql = "INSERT INTO `" . $campo_insert."` (" . $this -> nombre_campo . ")";
		$sql .= " VALUES(" . $this -> valor_campo . ");";
		return( $sql );
	}
	
	function ActualizarValoresSQL( $nuevos_valores, $tabla, $where ){
	    //Genera la consulta MySQL que se envia al servidor (ACTUALIZAR).
        //Se le pasa una array asociativa y convierte
        //los key's de la array en los campos que corresponden
        //a la base de datos y los valores respectivos a valores
        //associados a cada campo.
        
		$this -> array_key = array_keys( $nuevos_valores );
		$this -> array_valor = $nuevos_valores;	
		
		for($ind = 0; $ind < count( $this -> array_key ); $ind++){
			$valores[$ind] = "`" . $this -> array_key[$ind] . "` = '" . $this->array_valor[$this -> array_key[$ind]] . "'";
		}
		
		$valores = implode( ",", $valores );
		
		$sql = "UPDATE `" . $tabla . "` SET " . $valores;
		$sql .= " WHERE " . $where . ";";
		return( $sql );
		
	}
	
	function VerError()
	{
	 	//Devuelve el ultimo error generado
	 	//si este existe.
	 	if( $this->error != Null ){
	 		return( $this->error );
 		}
 		else{
 			return( False );
 		}
	}
	
	function limpiar($variable){
		//para escapar los caracteres especiales.
		if( get_magic_quotes_gpc() ){$variable = mysql_real_escape_string(stripslashes(trim($variable)));}
		else{$variable = mysql_real_escape_string(trim($variable));}
		return( $variable );
	}
		
	function CerrarConexion()
    {
        //Cierra la conexion no-persistente con el servidor MySQL.
        if(!@mysql_close($this->connect)){
 			$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }

    function LimpiarConsulta(){
        //Libera la memoria associoada a la variable donde se guarda la consulta.
        if(!@mysql_free_result($this->consulta))
        {	
	   		$this->error = mysql_error();
        	return( False );
        }else{
        	return( True );
        }
    }
}

$config = array();
$config["MYSQL"]["SERVER"]      = "127.0.0.1";
$config["MYSQL"]["USER"]        = "root";
$config["MYSQL"]["PASS"]        = "";
$config["MYSQL"]["DATABASE"]    = "web";

$mysql = new MySQL( $config["MYSQL"]["SERVER"], $config["MYSQL"]["USER"], $config["MYSQL"]["PASS"], $config["MYSQL"]["DATABASE"]);
if( !$mysql -> Conectar() ){
    exit( $mysql -> VerError() );
}

/*********************************
* Una consulta a la base de datos
*********************************/
$sql = "SELECT `metatags`.`type`, `metatags`.`name`, `metatags`.`value` FROM `metatags`;";
if( !($query = $mysql ->Consulta($sql)) ){
    exit( $mysql -> VerError() );
}

while( $valor = $mysql -> VerDatos($query) ){
    echo "Meta Type: " . $valor -> type . "<br />";
    echo "Meta Name: " . $valor -> name . "<br />";
    echo "Meta value: " . $valor -> value . "<br />";
    echo "--------------------------------------------------------<br />";
}

/*********************************
* Insertar en una tabla
*********************************/
$table = "metatags";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "all";

$sql = $mysql ->InsertarValoresSQL( $reg, $table);
echo $sql . "<br />";
if( /*!$mysql -> Consulta($sql)*/ !true ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows insert into DB.<br />";
}

/***************************************
* Actualizar valores de una tabla tabla
***************************************/
$table = "metatags";
$where = "value = 'all' AND name = 'robots'";
//$reg["nombre_campo_tabla"] = "valor_a_insertar";
$reg["type"] = "name";
$reg["name"] = "robots";
$reg["value"] = "index";

$sql = $mysql->ActualizarValoresSQL( $reg, $table, $where );
echo $sql . "<br />";
if( !$mysql -> Consulta($sql) ){
    exit( $mysql -> VerError() );
}
else{
    echo "Rows updated.<br />";
}
?>

Initial URL

                                

Initial Description

                                

Initial Title
PHP MySql Class

Initial Tags
mysql, class, data

Initial Language
PHP