![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Guauu.....Sólo por lo que has escrito te mereces un abrazo (sin tener que salir del armario
).Creo que te he entendido perfectamente. El interés de querer mantener, la instancia de este objeto, es simplemente, porque una de las propiedades de este objeto es el enlace que me devuelve la función mysql_connect (), y es utilizado por todas las clases descendientes para la comunicación,gestión de la Bd. Código:
function Conectar($Host,$User,$Pwd)
{
$this->Cod_Error=0;
$This->Des_Error="";
if ($this->FConectado)
Desconectar();
$this->Link=@mysql_connect ($Host,$User,$Pwd);
if($this->Link)
{
$this->FConectado=1;
$this->CargaBds();
}
else
{
$this->FConectado=0;
$this->Cod_Error=1;
$This->Des_Error="No se ha podido establecer Conexión";
}
return $this->FConectado;
}
La idea es conectarme sólo una vez y gestionar esta conexión durante toda la sesión. Respecto al problemas de las funciones, creo y sólo creo, que al crear la clase, la variable es un puntero, en la cuál, se guarda una dirección de memoria, por ejemplo 0xfffff, en la cual se guardará el nuevo objeto. Cuando el objeto se destruye se libera la memoría utilizada por el objeto, comenzando por 0xfffff. Pero, y creo que aquí está el problema, la variable sigue teniendo almacenada la dirección 0xfffff. La variable, no es null, no está vacía, y contiene un valor. Las funciones no detectan esta situación. Todo lo anterior, es lo que creo. Saludos ![]() |
|
#2
|
||||
|
||||
|
Hola,
Bien. No creo que interese mantener la conexión "activa". No lo digo con mucho conocimiento de causa, pero, para tratar con bases de datos MySQL, el proyecto WordPress, Menéame, y yo mismo... he usado siempre una adaptación de la clase ezSQL de Justin Vincent. Esto es así porque una vez que conoces esta clase ya no quieres otra cosa... Mi adaptación de la clase la adjunto a continuación. Puede que te cueste entrarle, pero, como le llegues a entrar, te aseguro que no querrás otra cosa: al menos a mí me parece que es estupenda, vaya. Mira de bajarte la clase original para estudiarla, pero, como me parece que esta ha "crecido" bastante... echa un vistazo también a "mi adaptación", que te adjunto. (Si tienes algún problema avisa). Pero, en fin, a lo que íbamos... no creo que merezca la pena mantener la conexión, entre otras cosas, por el gasto que pueda conllevar. Personalmente, ya digo, uso la clase que adjunto para comunicar con bases de datos MySQL. Precisamente, una de las variables globales de mi sistema guarda una instancia de dicha clase, mejor dicho, de una que deriva de ella, pero, para el caso es lo mismo. Y el caso es que al inicio de mi sistema se requieren los archivos necesarios y se instancia dicha clase en una variable global. Mientras se van requiriendo archivos no es preciso hacer más: la variable global mantiene la instancia de la clase, con la conexión a la base de datos, de modo que puede uno usarla sin preocuparse de más. Y, cuando "rediriges" a otro Script... dicho Script sí o sí ha de requerir el archivo donde se declara la variable global y se "construye" la clase (es en el constructor de la clase que se realiza la conexión a la base de datos). Pero, ya digo... proyectos como WordPress, Menéame y algunos que yo he llevado a cabo, más humildemente, no necesitan mantener la conexión a la base de datos hasta el punto que dices. De todos modos, lo mismo que existe "mysql_connect()", existe también "mysql_pconnect()": la "p" es de "permanent", y se diferencia de "mysql_connect()", según la ayuda: Cita:
Así que lo dicho: una clase que se conecta con la base de datos, la selecciona y permite trabajar con ella... no tiene porqué "persistir" entre sesiones, sino que basta conque se "instancie" y haga su trabajo cada vez que esto sea necesario. Yo vengo funcionando así... WordPress... Menéame... también (de Menéame no estoy al cien por cien seguro porque hace tiempo que no miro su código), así que... tal vez tú tampoco necesites otra cosa. ![]() Última edición por dec fecha: 02-05-2008 a las 15:55:19. |
|
#3
|
||||
|
||||
|
Ok.
Creo que la experiencia, es un grado. , y tendré en cuenta el asunto de no tener que mantener una conexión permanentemente.Gracias, por el adjunto, lo echaremos un vistazo dedpues de la formula one. ![]() AUPA ALONSO!!!!! ![]() ![]() ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| como acceder a un objeto si el nombre es pasado como un string | marcelinux | Varios | 4 | 08-11-2007 00:20:39 |
| Si yo hubiera sido... | xander | La Taberna | 0 | 30-11-2006 03:32:25 |
| Saber si un archivo ha sido modificado desde fuera | ixMike | Varios | 7 | 11-09-2006 19:13:14 |
| Como saber si un Formulario ha sido creado | Durbed | OOP | 7 | 13-10-2005 13:06:28 |
| Saber en qué path está mi ejecutable (sin usar el objeto Application) | Feñiz | OOP | 2 | 17-02-2005 16:36:41 |
|