Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Comentarios Sobre Mi clase para conecctar Mysql

Estas en el tema de Comentarios Sobre Mi clase para conecctar Mysql en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estado trabajando sobre una clase que la llamo BaseDeDatos bueno, espero que me den sus opiniones y si es de utilidad y en que se ...
  #1 (permalink)  
Antiguo 03/09/2009, 14:40
 
Fecha de Ingreso: marzo-2004
Mensajes: 186
Antigüedad: 20 años, 9 meses
Puntos: 0
Comentarios Sobre Mi clase para conecctar Mysql

Estado trabajando sobre una clase que la llamo BaseDeDatos bueno, espero que me den sus opiniones y si es de utilidad y en que se le puede mejorar, ademas aportar ideas o comentarios, gracias a todos saludos


Fichero: config.inc.php
Cita:

2. define("HOME",realpath(dirname(__FILE__)));
3. define("MODELO",HOME."\modelo");
4. define("VISTA",HOME."\vista");
5. define("CONTROLADOR",HOME."\controlador");
6. define("CLASES",HOME."\clases");
7. ?>
Fichero: BaseDeDatos.class.php

Cita:

1. class BaseDeDatos{
2. /*
3. * Patch o ruta actual de la aplicacion
4. */
5. private $patch;
6. /*
7. * Tipo de Conexion mysql, odbc,sql
8. */
9. private $tipodeconexion;
10. /*
11. * Host de Conexion
12. */
13. protected $host;
14. /*
15. * Usuario de Conexion
16. */
17. protected $user;
18. /*
19. * Password de Conexion
20. */
21. protected $password;
22. /*
23. * Base de Datos de Conexion
24. */
25. protected $database;
26. /*
27. * Crea una conexion
28. */
29. public function __construct($tipodeconexion){
30. $this->DatosDeConexion();
31. $this->SeleccionarConexion($tipodeconexion);
32. }
33. protected function DatosDeConexion(){
34. $this->patch = MODELO."\Conexion.tpl";
35. if(file_exists($this->patch)){
36. $vconexion = file($this->patch);
37. $this->host = str_replace("\r\n", "",$vconexion[0]);
38. $this->user = str_replace("\r\n", "",$vconexion[1]);
39. $this->password = str_replace("\r\n", "",$vconexion[2]);
40. $this->database = str_replace("\r\n", "",$vconexion[3]);}
41. else {echo "No existe fichero de configuracion";}
42. }
43. private function SeleccionarConexion($driver){
44. $driver = "base".$driver;
45. $this->$driver();
46. }
47. protected function Registrar(){
48. }
49. protected function Modificar(){
50. }
51. protected function Eliminar(){
52. }
53. }
54. ?>
Fichero: ConectarMysql.class.php

Cita:
1.
2. class ConectarMysql extends BaseDeDatos {
3.

4. private $tablas;
5. private $filas;
6. private $registros;
7. private $cadena_registro = "";
8. private $contador;
9. private $identificador;
10.

11.


12. protected function baseMysql(){
13. //realizamos la conexion con nuestra Base de Datos
14. //echo $this->host.$this->database;
15. $this->contador=-1;
16. if($this->host=="" and $this->user==""and $this->database=="")
17. echo "Ingrese Valores Validos en DataBase.txt";
18. else
19. {
20. if(!($vierror = mysql_connect($this->host,$this->user,$this->password)))
21. echo "Error Conectandose a la Base de datos";
22. if(!(mysql_select_db($this->database,$vierror)))
23. echo "Error seleccionando la base de datos.";
24. }
25. }
26. /**
27. *Metodo para registrar una fila
28. *
29. * @param String $tabla
30. * @param String $columnas
31. * @param String $registros
32. * @return True,False
33. */
34. public function Registrar($tabla,$columnas,$registros){
35. //Extraemos la cadena de registros
36. $Array_registros = explode(",",$registros);
37. $Array_columnas = explode(",",$columnas);
38. //verificamos que los registros y las columnas son iguales
39. if(count($Array_registros) == count($Array_columnas)){
40. //realizamos el registro de datos en mysql
41. $this->cadena_registro .= "insert into ".$tabla." (".$columnas.") values ( \n";
42.

43. for ($i=0;$i<count($Array_registros);$i++){
44. $this->cadena_registro .= "'".$Array_registros[$i]."'";
45. if($i+1<count($Array_registros)){$this->cadena_registro .= ",";}
46. }
47. $this->cadena_registro .= ")";
48. //verificamos si se hizo el registro correctamente
49. if(mysql_query($this->cadena_registro))
50. return "true";
51. else
52. return "false";
53. }else{return "El campo columna no coincide con el campo registro";}
54. }
55. /**
56. * Esta funcion nos permite Actualizar una consulta el formato es :
57. * Nombre de la tabla
58. * Nombre de las columnas a modificar separadas por coma
59. * Nombre de los registros a ingresar separados por coma
60. * Nombre de la columna que sera la condicion para realizar la actualizacion
61. * Valor que tendra la columna de condicion
62. *
63. * Ejemplo:
64. * $this->Modificar("mitabla","nombre,apellido,direccion"," carlos,cervantes,lurin","id","5");
65. *
66. *
67. * @param String $tabla
68. * @param String $columnas
69. * @param String $registros
70. * @param String $where
71. * @param String $valor
72. * @return True,False
73. */
74. function Modificar($tabla,$columnas,$registros,$where,$valo r){
75. /*
76. *Realizamos un array de las variables separados por coma
77. */
78. $Array_columnas = explode(",",$columnas);
79. $Array_registros = explode(",",$registros);
80. /*
81. *Verficamos que la cantidad de columnas sea igual a la cantidad de registros en
82. * registro y en el where
83. */
84. if(count($Array_columnas)== count($Array_registros)){
85. $this->cadena_actualizar .= "UPDATE ".$tabla." SET ";
86. for($i=0;$i<count($Array_columnas);$i++){
87. $this->cadena_actualizar .= $Array_columnas[$i]." = '".$Array_registros[$i]."' ";
88. if($i+1<count($Array_columnas)){$this->cadena_actualizar .= ", ";}
89. }
90. $this->cadena_actualizar .= " WHERE ".$where." = '".$valor."'";
91. if(mysql_query($this->cadena_actualizar)){
92. return "True"; }
93. else return "False";
94. }
95. else
96. return "El numero de registros es diferente al numero de columnas";
97. }
98. /**
99. * Metodo para eliminar una consulta
100. *
101. * @param String $tabla
102. * @param String $where
103. * @param String $valor
104. * @param Int $limit
105. */
106. public function Eliminar($tabla,$where,$valor,$limit){
107. $this->cadena_eliminar .= "DELETE FROM ".$tabla." WHERE ";
108. $this->cadena_eliminar .= $where." = '".$valor."' LIMIT ".$limit;
109. if(mysql_query($this->cadena_eliminar))
110. return "True";
111. else
112. return "False";
113. }
114. /**
115. * Realizar una consulta en una tabla
116. *
117. * @param string $tabla
118. * @param string $filas
119. * @param string $where
120. * @param string $valor
121. */
122. public function Consultar($tabla,$filas,$where,$valor){
123. $this->contador++;
124. if($where==""){
125. $this->cadena_query = "SELECT ".$filas." FROM ".$tabla;
126. }
127. else{
128. $this->cadena_query = "SELECT ".$filas." FROM ".$tabla." WHERE ".$where." = '".$valor."'";
129. }
130. $this->array_mysql[$this->contador] = mysql_query($this->cadena_query);
131. }
132. /**
133. * Ingrese el numero de consulta que desea recuperar en array
134. *
135. * @param int $identificador
136. * @return array
137. */
138. public function Array_Query($identificador){
139. return $this->array_mysql[$identificador];
140. }
141. }
142.

143. ?>
Para usar esto tenemos que tenes los directorios de la siguiente manera:

Carpeta "Proyecto"

1. -index.php
2. -config.inc.php
3. -Modelo

* -Conexion.tpl

1. -Vista
2. -Clases

* -BaseDeDatos.class.php
* -ConectarMysql.class.php


En el index cargamos nuestras clases y podemos segun el siguiente ejemplo
Cita:
1. $NuevaConexion = new ConectarMysql("Mysql");
2. $NuevaConexion->Registrar("vendedores","usuario,password,nombre,a pellido,dni,estado","ck,123456,nm,ap,424,1");
3. $NuevaConexion->Modificar("tabla","login,password","server,4321", "id_client","1");
4. $NuevaConexion->Eliminar("tecnicos","id","5","1");
5. $NuevaConexion->Consultar("clientse164","*","id_client","1");
6. $NuevaConexion->Consultar("clientse164","*","id_client","5");
7. Esto es para rescaratar los datos y va en la capa controlador como
8. un objeto de recopilacion de array
9. while($cadena = mysql_fetch_array($NuevaConexion->Array_Query("0")))
10. {
11. echo $cadena[log];
12. }
13. while($cadena2 = mysql_fetch_array($NuevaConexion->Array_Query("1")))
14. {
15. echo $cadena2[log];
16. }
Espero Les sea de utilidad y comenten si podemos mejorarla o si les fue de utlidad
__________________
Software a Medida
voip Locutorios
  #2 (permalink)  
Antiguo 04/09/2009, 08:33
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años, 1 mes
Puntos: 69
Respuesta: Comentarios Sobre Mi clase para conecctar Mysql

Tal vez si pudieras colocar el código indentado y con los colores (utilizando el tag especial que el foro ofrece para eso) sería mucho más simple para todos poder seguir el código y dejarte algún comentario.
Intenta eso y lo vemos.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 04/09/2009, 09:13
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 20 años
Puntos: 14
De acuerdo Respuesta: Comentarios Sobre Mi clase para conecctar Mysql

Muy buen intento en comentar cada linea, para php existe http://www.phpdoc.org/ que te dice como hacerlo apropiadamente.

y coincido con Webstudio, en que deberias identar tu código para que sea más legible por otras personas.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #4 (permalink)  
Antiguo 04/09/2009, 12:14
 
Fecha de Ingreso: marzo-2004
Mensajes: 186
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Comentarios Sobre Mi clase para conecctar Mysql

Gracias por sus comentarios, bueno disculpen por el modo como lo coloque es que lo pegue directamente de mi blog donde lo habia colocado pero aqui se los coloco corregido gracias y espero vuestros comentarios

Fichero: config.inc.php

Código PHP:
<?PHP
define
("HOME",realpath(dirname(__FILE__)));
define("MODELO",HOME."\modelo");
define("VISTA",HOME."\vista");
define("CONTROLADOR",HOME."\controlador");
define("CLASES",HOME."\clases");
?>
Clases Base de Datos
Fichero: BaseDeDatos.class.php

Código PHP:
<?php

 
class BaseDeDatos{
    
/*
    * Patch o ruta actual de la aplicacion
    */
    
private       $patch;
    
/*
    * Tipo de Conexion mysql, odbc,sql
    */
    
private     $tipodeconexion;
    
/*
    * Host de Conexion
    */
    
protected     $host;
    
/*
    * Usuario de Conexion
    */
    
protected     $user;
    
/*
    * Password de Conexion
    */
    
protected     $password;
    
/*
    * Base de Datos de Conexion
    */
    
protected     $database;
    
/*
    *  Crea una conexion
    */
    
public function __construct($tipodeconexion){
            
$this->DatosDeConexion();
            
$this->SeleccionarConexion($tipodeconexion);
            
                
    }
    protected  function 
DatosDeConexion(){
        
$this->patch MODELO."\Conexion.tpl";        
        if(
file_exists($this->patch)){
            
$vconexion file($this->patch);
            
$this->host str_replace("\r\n""",$vconexion[0]);
            
$this->user str_replace("\r\n""",$vconexion[1]);
            
$this->password str_replace("\r\n""",$vconexion[2]);
            
$this->database str_replace("\r\n""",$vconexion[3]);}
        else {echo 
"No existe fichero de configuracion";}    
    }
    private function 
SeleccionarConexion($driver){        
            
$driver "base".$driver;
            
$this->$driver();
    }
    protected function 
Registrar(){
        
    }
    protected function 
Modificar(){
        
    }
    protected function 
Eliminar(){
        
    }

}

?>

clase ConectarMysql
Fichero: ConectarMysql.class.php

Código PHP:
<?php

class ConectarMysql extends BaseDeDatos {
    
    private 
$tablas;
    private 
$filas;
    private 
$registros;
    private 
$cadena_registro "";
    private 
$contador;
    private 
$identificador;
    
    
    protected  function 
baseMysql(){
        
//realizamos la conexion con nuestra Base de Datos
        //echo $this->host.$this->database;
        
$this->contador=-1;
        if(
$this->host=="" and $this->user==""and $this->database=="")
            echo 
"Ingrese Valores Validos en Conexion.tpl";
        else 
            {
            if(!(
$vierror mysql_connect($this->host,$this->user,$this->password)))            
            echo 
"Error Conectandose a la Base de datos";
            if(!(
mysql_select_db($this->database,$vierror)))
            echo 
"Error seleccionando la base de datos.";
        }
    }
    
/**
     *Metodo para registrar una fila
     * 
     * @param String $tabla
     * @param String $columnas
     * @param String $registros
     * @return True,False
     */
    
public function Registrar($tabla,$columnas,$registros){
        
//Extraemos la cadena de registros
        
$Array_registros explode(",",$registros);
        
$Array_columnas explode(",",$columnas);
        
//verificamos que los registros y las columnas son iguales
        
if(count($Array_registros) == count($Array_columnas)){
        
//realizamos el registro de datos en mysql
        
$this->cadena_registro .= "insert into ".$tabla." (".$columnas.") values ( \n";
        
        for (
$i=0;$i<count($Array_registros);$i++){
            
$this->cadena_registro .= "'".$Array_registros[$i]."'";
            if(
$i+1<count($Array_registros)){$this->cadena_registro .= ",";}
        }
        
$this->cadena_registro .= ")";
        
//verificamos si se hizo el registro correctamente
        
if(mysql_query($this->cadena_registro))
            return 
"true";        
        else
            return 
"false";
        }else{return 
"El campo columna no coincide con el campo registro";}    
    }
    
/**
     * Esta funcion nos permite Actualizar una consulta el formato es :
     * Nombre de la tabla
     * Nombre de las columnas a modificar separadas por coma
     * Nombre de los registros a ingresar separados por coma
     * Nombre de la columna que sera la condicion para realizar la actualizacion
     * Valor que tendra la columna de condicion
     * 
     * Ejemplo:
     * $this->Modificar("mitabla","nombre,apellido,direccion","carlos,cervantes,lurin","id","5");
     * 
     *
     * @param String $tabla            
     * @param String $columnas
     * @param String $registros
     * @param String $where
     * @param String $valor
     * @return True,False
     */
     
function Modificar($tabla,$columnas,$registros,$where,$valor){
        
/*
        *Realizamos un array de las variables separados por coma
        */
        
$Array_columnas         explode(",",$columnas);
        
$Array_registros         explode(",",$registros);
        
/*
        *Verficamos que la cantidad de columnas sea igual a la cantidad de registros en
        * registro y en el where
        */
        
if(count($Array_columnas)== count($Array_registros)){
            
$this->cadena_actualizar .= "UPDATE ".$tabla." SET ";
            for(
$i=0;$i<count($Array_columnas);$i++){
                
$this->cadena_actualizar .= $Array_columnas[$i]." = '".$Array_registros[$i]."' ";
                if(
$i+1<count($Array_columnas)){$this->cadena_actualizar .= ", ";}
            }
            
$this->cadena_actualizar .= " WHERE ".$where." = '".$valor."'";
            if(
mysql_query($this->cadena_actualizar)){
                return 
"True";    }
                else return 
"False";            
        }
        else
            return 
"El numero de registros es diferente al numero de columnas";
    }
    
/**
     * Metodo para eliminar una consulta
     *
     * @param String $tabla
     * @param String $where
     * @param String $valor
     * @param Int $limit
     */
    
public function Eliminar($tabla,$where,$valor,$limit){
        
$this->cadena_eliminar .= "DELETE FROM ".$tabla." WHERE ";
        
$this->cadena_eliminar .= $where." = '".$valor."' LIMIT ".$limit;
        if(
mysql_query($this->cadena_eliminar))
            return 
"True";
            else 
            return 
"False";
        }
    
/**
     * Realizar una consulta en una tabla
     *
     * @param string $tabla
     * @param string $filas
     * @param string $where
     * @param string $valor
     */
    
public function Consultar($tabla,$filas,$where,$valor,$opcional){
        
$this->contador++;
            if(
$where==""){
            
$this->cadena_query "SELECT ".$filas." FROM ".$tabla." ".$opcional;
            
$this->array_mysql[$this->contador] = mysql_query($this->cadena_query);
            }
            else{
                
                
$this->cadena_query .= "SELECT ".$filas." FROM ".$tabla." WHERE ";
                
                
$Array_where explode(",",$where);
                
$Array_valor explode(",",$valor);
                if(
count($Array_where)==count($Array_valor)){
                    for(
$i=0;$i<count($Array_where);$i++){
                        
$this->cadena_query .= $Array_where[$i]." = '".$Array_valor[$i]."' and ";    
                        }                    
                
$this->cadena_query substr($this->cadena_query,0,-4);
                if(
$opcional<>""){$this->cadena_query .= " ".$opcional;}
                
$this->array_mysql[$this->contador] = mysql_query($this->cadena_query);
                }            
                else {
                    echo 
"Los valores tienen que ser igual a los where";
                }
            }
            
        
        }
    
/**
     * Ingrese el numero de consulta que desea recuperar en array
     *
     * @param int $identificador
     * @return array
     */
    
public function Array_Query($identificador){
        return 
$this->array_mysql[$identificador];
    }
    }
/*$NuevaConexion = new ConectarMysql("Mysql");
//$NuevaConexion->Registrar("vendedores","usuario,password,nombre,apellido,dni,estado","ck,123456,nm,ap,424,1");
//$NuevaConexion->Modificar("clientse164","login,password","Prueba01,4321","id_client","1");
//$NuevaConexion->Eliminar("tecnicos","id","5","1");
$NuevaConexion->Consultar("clientse164","*","id_client,casa,cerro,lot","1,2,3,4");
$NuevaConexion->Consultar("clientse164","*","id_client","5");
//Esto es para rescaratar los datos y va en la capa controlador como
//un  objeto de recopilacion de array
while($cadena = mysql_fetch_array($NuevaConexion->Array_Query("0")))
{
    echo $cadena[login];
}
while($cadena2 = mysql_fetch_array($NuevaConexion->Array_Query("1")))
{
    echo $cadena2[login];
}*/
?>
Para usar esto tenemos que tenes los directorios de la siguiente manera:

Carpeta "Proyecto"

1. -index.php
2. -config.inc.php
3. -Modelo

* -Conexion.tpl

1. -Vista
2. -Clases

* -BaseDeDatos.class.php
* -ConectarMysql.class.php
__________________
Software a Medida
voip Locutorios
  #5 (permalink)  
Antiguo 04/09/2009, 12:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 186
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Comentarios Sobre Mi clase para conecctar Mysql

en el index cargamos la info

En el index cargamos nuestras clases y podemos segun el siguiente ejemplo

Código PHP:
$NuevaConexion = new ConectarMysql("Mysql");
$NuevaConexion->Registrar("vendedores","usuario,password,nombre,a pellido,dni,estado","ck,123456,nm,ap,424,1");
$NuevaConexion->Modificar("tabla","login,password","server,4321""id_client","1");
$NuevaConexion->Eliminar("tecnicos","id","5","1");
$NuevaConexion->Consultar("clientse164","*","id_client","1");
$NuevaConexion->Consultar("clientse164","*","id_client","5");
Esto es para rescaratar los datos y va en la capa controlador como
un objeto de recopilacion de 
array
while(
$cadena mysql_fetch_array($NuevaConexion->Array_Query("0")))
{
echo 
$cadena[log];
}
while(
$cadena2 mysql_fetch_array($NuevaConexion->Array_Query("1")))
 {
echo 
$cadena2[log];
 } 
Espero sus respuesta y gracias por la correccion
__________________
Software a Medida
voip Locutorios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:36.