Autor Tema: [Documentado] Classe MySQL, limpia, funcional y útil.  (Leído 2442 veces)

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
[Documentado] Classe MySQL, limpia, funcional y útil.
« en: 28 de Marzo de 2012, 20:43:48 pm »
Bueno, aquí os traigo un aporte mio, decidí aprender POO y bueno, he hecho esto para mis proyectos, y he decidido publicarlo, es una classe bastante útil, he añadido una documentación bastante amplia, así que aprovecharla si quereis .

Código: [Seleccionar]
    <?php

    
/*Totalmente creado por Jordi H. Castro, prohibido la reproduccion parcial i.o completa sin permiso previo*/

    /*Classe de parametros del servidor y informacion*/
    
class sql
    
{

        
/**Creando las variables privadas para la classe*/
        
private $server;
        private 
$user;
        private 
$pass;
        private 
$data;

        
/*Variables del enlace*/
        
var $link;
        private 
$data_link;

        
/*Cargando los Objetos*/
        
function __construct(){

            
/*Asignando un valor de por defecto a las variables de la classe*/
            
$this->server='localhost';
            
$this->user='******';
            
$this->pass='******';
            
$this->data='DATABASE';

            
/*Estableciendo enlace y seleccion de base de datos con datos proporcionados*/
            
$this->link=mysql_connect($this->server$this->user$this->pass);
            
$this->data_link=  mysql_select_db($this->data$this->link);

        }

        
/*Mostrar la configuracion Actual del enlace*/
        
public function mostrar_config_actual(){
            echo 
'<b>Servidor:</b> '.$this->server.'<br />';
            echo 
'<b>Usuario:</b> '.$this->user.'<br />';
            echo 
'<b>Contrasenya:</b> '.$this->pass.'<br />';
            echo 
'<b>Base de Datos (Origen):</b> '.$this->data.'<br />';
        }   

        
/*El estado del enlace devuelto en formato leible*/
        
public function estado_enlace(){
            
$stat =explode('  'mysql_stat($this->link));
            foreach(
$stat as $campo => $valor){
                echo 
'<b>'.$campo.'</b> '.$valor.'<br />';
            }
        }

    }
    
    
    
/*Trabajar con el servidor SQL*/
    
class sql_operaciones extends sql
    
{
        function 
__construct(){
            
parent::__construct();
        }
        
//////SELECCIONES/////////
        
public function seleccionar_valor_exacto($columna$fila){

            
$consulta =mysql_result(mysql_query("SELECT $columna FROM $fila"$this->link), 0);
            echo 
$consulta;
            
mysql_free_result($consulta);
            
mysql_close($this->link);

        }
        public function 
seleccionar_valor_condicion($columna$fila$condicion$c_valor){
            
$consulta =mysql_result(mysql_query("SELECT $columna FROM $fila WHERE $condicion='".$c_valor."' "$this->link), 0);
            echo 
$consulta;
            
mysql_free_result($consulta);
            
mysql_close($this->link);
        } 
        
//////FIN DE SELECCIONES//////

        //// INSERCIONES ////////
        
public function insertar_valor($columna$tablas$valores){
            
$consulta "INSERT INTO $columna $tablas VALUES $valores";
            
mysql_query($consulta);
            
mysql_free_result($consulta);
            
mysql_close($this->link);
        }
        
///// FIN DE INSERCIONES /////

        ///// ACTUALIZACIONES ///////
        
public function actualizar_tablas($columna$fila$valor){
            
$consulta ="UPDATE $columna SET $fila='".$valor."' ";
            
mysql_query($consulta);
            
mysql_free_result($consulta);
            
mysql_close($this->link);

        }

        public function 
actualizar_tablas_condicion($columna$fila$valor$condicion$c_valor){
            
$consulta ="UPDATE $columna SET $fila='".$valor."' WHERE $condicion='".$c_valor."' ";
            
mysql_query($consulta);
            
mysql_free_result($consulta);
            
mysql_close($this->link);

        }
        
///// FIN DE ACTUALIZACIONES /////
        
        /////BORRAR REGISTROS////////////
 
        
public function borrar_registro($columna$condicion$c_condicion){
            
$consulta ="DELETE FROM $columna WHERE $condicion='".$c_condicion."' ";
            
mysql_query($consulta);
            
mysql_free_result($consula);
            
mysql_clos($this->link);
            
        }
        
        
///// FIN /////////////////////
    
}

    
//////////////////Construccion SQL y estado////////////////
    /*$sql =new sql();*/
   
    //Muestra Configuracion actual del servidor
    /*$sql->mostrar_config_actual();*/
   
    //Estado del enlace
    /*$sql->estado_enlace();*/

    /////////////////////Operaciones SQL///////////////////////
    /*$dato =new sql_operaciones();*/
    
    //Seleccionar Dato Exacto
    /*$dato->seleccionar_valor_exacto('nombre', 'sistema');*/
    
    //Seleccionar Dato Condicion
    /*$dato->seleccionar_valor_condicion('nick', 'user', 'id', '1');*/

    //Insertar Datos
    /*$dato->insertar_valor('test', '(testit, testit2)', "('".$test."', '".$test2."')");*/

    //Actualizar tablas masivamente
    /*$dato->actualizar_tablas('sistema', 'nombre', 'SimpleForum');*/
    
    //Actualizar valor concreto
    /*$dato->actualizar_tablas_condicion('user', 'nick', 'blue', 'id', '1');*/
    
    //Borrar Registro
    /*$dato->borrar_registro('test', 'testit2', '0');*/
?>



EXPLICACIÓN

-Classe SQL
-> Contiene los parámetros del servidor, funciones para mostrar el estado del enlace, un poco englobalizado.

Funciones

-> editar_enlace($servidor, $usuario, $contraseña, $base de datos)
--> Con esta función puede editar los valores de por defecto (esta función es un poco inútil, simplemente estaba jugando un poco)

-> mostrar_config_actual()
--> Muestra los parámetros de conexión al servidor SQL actuales.

-> copyright()
--> Nada, como dice el nombre.


-Classe SQL_OPERACIONES
-> Las operaciones sql que podemos hacemer en el servidor sql con los parámetros de la anterior classe, va enlazado, funciones como insertar, actualizar, seleccionar

Funciones

->seleccionar_valor_exacto($campo, $fila)
-->Selecciona un valor en concreto, sin condiciones.

->seleccionar_valor_condicion($campo, $fila, $condicion, $valor de condicion)
-->Selecciona un valor apartir de una condicion, por ejemplo: selecciona usuario donde la id es la que me llega por get

->insertar_valor($columna, 'test1','test2','test3', "('".$var."', '".$var1."', '".$var2."')")
-->Inserta valores a su correspondiente tabla

->actualizar_tabla($columna, $fila, $valor)
-->Actualiza una tabla

->actualizar_tablas_condicion($columna, $fila, $valor, $condicion, $c_condicion)
-->Actualiza una tabla en concreto con condicion, ejemplo, actualizame la tabla con id 1, y esa id la pasas por _GET, o cualquier método

UTILIZACIÓN

Construccion SQL y estado
Código: (php) [Seleccionar]
<?php

//Convertir la variable SQL en un objeto, en este caso el objeto SQL
$sql =new sql();

//Muestra Configuracion actual del servidor
$sql->mostrar_config_actual();
   
//Estado del enlace
$sql->estado_enlace();
?>


Operaciones SQL
   
Código: (php) [Seleccionar]

<?php
//Convertir la Variable dato en un objeto, en ste caso sql_operaciones
$dato =new sql_operaciones();
    
//Seleccionar Dato Exacto
$dato->seleccionar_valor_exacto('nombre''sistema');
    
//Seleccionar Dato Condicion
$dato->seleccionar_valor_condicion('nick''user''id''1');

//Insertar Datos
$dato->insertar_valor('test''(testit, testit2)'"('".$test."', '".$test2."')");

//Actualizar tablas masivamente
$dato->actualizar_tablas('sistema''nombre''SimpleForum');
    
//Actualizar valor concreto
$dato->actualizar_tablas_condicion('user''nick''blue''id''1');
    
//Borrar Registro
$dato->borrar_registro('test''testit2''0');

?>


« Última modificación: 17 de Abril de 2012, 15:35:57 pm por CarlosRdrz »


La red social de tus sueños.


Comunidad PHPeros

[Documentado] Classe MySQL, limpia, funcional y útil.
« en: 28 de Marzo de 2012, 20:43:48 pm »

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
Re:[Documentado] Classe MySQL, limpia, funcional y útil.
« Respuesta #1 en: 23 de Agosto de 2012, 20:12:47 pm »
istocker, eres tonto XD?


La red social de tus sueños.


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Documentado] Classe MySQL, limpia, funcional y útil.
« Respuesta #2 en: 29 de Agosto de 2012, 10:15:54 am »
Me he preocupado un poco, para no decir mucho, cuando vi esto:

->insertar_valor($columna, 'test1','test2','test3', "('".$var."', '".$var1."', '".$var2."')")

Creo que deberías empezar a practicar con los arreglos y buscarle una utilidad a la hora de pasar parámetros en funciones.

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
Re:[Documentado] Classe MySQL, limpia, funcional y útil.
« Respuesta #3 en: 08 de Septiembre de 2012, 02:21:05 am »
Sí, lo se, creeme, jeje! Ésta clase es más vieja que yo, gracias"


La red social de tus sueños.