Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/05/2007, 10:12
usermax
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Pregunta Re: mysql_connect restringido

Hola, gracias por responder.
Claudio, la clase tiene varios métodos entre los cuales, los polémicos. Los presento de manera esquemática (ya que la clase funciona bien):

class MYSQL
{
public $...;
private $...;
protected $...;
// en fin todas las definiciones de atributos

function __construct () {

$this->conexion();

}


private function conexion(){

$this->link = connetc(...)

}

public function SQL($sql) {

$consulta = mysql_query($sql,$link)

}

etc etc etc he obviado la parte donde corrobora los permisos de cada programador o módulo y donde se filtra el código no permitido.

La cuestion es que cuando algun programador no decide utilizar la clase y pone directamente en el código mysql_query, PHP toma automáticamente la ultima conexión abierta que fue justamente a que se abrio dentro de la clase.
Entonces el programador puede acceder a toda la base de datos y efectuar los cambios que quera sin pasar por los filtros.

Esta bien la solución de abrir y cerrar la conexión en cada consulta y lo estoy implementando de esta manera (volviendo al esquema de arriba):


public function SQL($sql) {
$this->conexion();

$this->consulta = mysql_query($sql,$link)

$this->close();

}

Pero el interrogante es si esta modalidad no le quita rendimiento a php y a mysql tendiendo en cuenta que en cada script a veces hay más de 3 o 4 consultas.

Por otro lado lo positivo es que por lo generar se genera una consulta y despues se descargan los resultados de esa consulta dentro de un html y si la conexión queda abierta. Es tiempo perdido el que pasa desde la ultima consulta a la finalización de la descarga html.

POr ese lado esta bueno cerrar la conexión despues de cada consulta.

No se si se entiende la duda, cual sería el mejor rendimiento??

Y veo además que NO HAY FORMA de limitar un link a mysql dentro de una clase.

No es la útima palabra, por eso lo estoy plantenado aca.

Quiero aclarar además que el objewtivo de esta clase son dos:

1) GRANATIZAR que la consulta esta bien hecha
2) RESTRINGIR el accesp de cada programador a la base de datos de manera que sólo pueda acceder a las tablas que yo le permita, y dentro de esa tabla a loc campos que yo le permita ejecutando selects, deletes, updates e inserts de acuerdo a los permisos.

De esta menra esta bien sectorizada la programación sin que un programador pueda meterse en otras áreas resguardando de esta manera la integridad y la confidencialidad de datos.

Lo negativo de esto es que lófgicamente el rendimiento de php es un poco más exigido ya que sería mucho más rápido una consulta directa que una consulta armada, controlada y ejecutada por una clase. Pero en proyectos grandes donde participan muchos y el crecimiento es muy bueno es un mal necesario.

Desde ya muchas gracias y espero sus comentarios.

Última edición por usermax; 17/05/2007 a las 10:19