cuando trato de serializar una instancia PDO me arroja la siguiente Exception:
Código:
¿es posible serialize o unserialize instancia PDO? You cannot serialize or unserialize PDO instances
| |||
Problema con serialize o unserialize instancia PDO Hola, cuando trato de serializar una instancia PDO me arroja la siguiente Exception:
Código:
¿es posible serialize o unserialize instancia PDO? You cannot serialize or unserialize PDO instances |
| |||
Re: Problema con serialize o unserialize instancia PDO hola GatorV, Estuve probando pero no funciona. los métodos abstractos de la interface Serializable los declaré de la siguiente forma Código PHP: salu2. |
| ||||
Re: Problema con serialize o unserialize instancia PDO Si ya implementaste los metodos creo entonces si la clase PDO no es serializable, ahora mi pregunta es, para que la quieres serializar? La conexion a la base de datos se perdera de todas formas y aun asi tendrias que volver a conectar a la base de datos.. Saludos. |
| |||
Re: Problema con serialize o unserialize instancia PDO Solo estaba jugando un poco con guardar el objeto serializado en un txt. Ahora probé guardando la instancia PDO en una Session y funciona sin problema, mi duda es que al guardarlo en una session esta automáticamente se serialize u unserialize, ¿entonces no debería tirar la misma excepción? gracias GatorV. salu2 |
| |||
Re: Problema con serialize o unserialize instancia PDO Cita: En teoría debería ser lo mismo y tendría que dar el mismo error. Tal vez estás haciendo algo mal, postea el código de cuando anda y cuando no, tal vez encontremos algún error.
Iniciado por zsamer Solo estaba jugando un poco con guardar el objeto serializado en un txt. Ahora probé guardando la instancia PDO en una Session y funciona sin problema, mi duda es que al guardarlo en una session esta automáticamente se serialize u unserialize, ¿entonces no debería tirar la misma excepción? gracias GatorV. salu2 Saludos. |
| |||
Re: Problema con serialize o unserialize instancia PDO Un ejemplo re-simple. Con sessiones, funciona sin problemas, salvo que al final de la pagina me arroga un error extraño. Pareciera ser que el Exception es lanzado por el destructor de PDO, ya que se ejecuta al final. ¿será un bug? Cita: Fatal error: Exception thrown without a stack frame in Unknown on line 0 Código PHP: Serializando, lanza la excepción que mata la aplicacion al principio: Cita: You cannot serialize or unserialize PDO instances Código PHP: Última edición por zsamer; 14/07/2007 a las 19:26 |
| ||||
Re: Problema con serialize o unserialize instancia PDO Creo si ves hasta abajo de la funcion serialize: Cita: Ahora tu ejemplo de session te sirve a traves de paginas? porque si es en la misma pagina tu ejemplo es correcto ya que nunca se va a serializar el objeto si no hasta que termine de procesarse la pagina y se serialize la session.
Iniciado por Manual de PHP.net Notes Note: It is not possible to serialize PHP built-in objects. Saludos. |
| |||
Re: Problema con serialize o unserialize instancia PDO Gracias GatorV, que buen ojo tienes, no lo había visto. Entonces el ejemplo quedaría así para que la session sirva a través de paginas: Y segun el ejemplo NO es posible guardar una instancia PDO en una session: Código PHP: El tema es que tengo una clase cart, la cual es necesario que se guarde en una session para tenerla a trabes de las páginas. Pero se me complica ya que dentro de esta clase tengo una instancia PDO, entonces al guardar el objeto carro en la session se serializa automáticamente y a su vez a la instancia PDO dentro de esta, esto me arroja la excepción y no se crea la session del carro. Última edición por zsamer; 15/07/2007 a las 02:23 |
| ||||
Re: Problema con serialize o unserialize instancia PDO Porque no separas de la clase Cart el acceso a la base de datos? o en su caso agrega metodos para cerrar la conexion y volver a crearla, algo asi: Código PHP: |
| |||
Re: Problema con serialize o unserialize instancia PDO gracias GatorV, separas de la clase Cart el acceso a la base de datos no es posible ya que tengo métodos que hacen consultas. Lo del sleep y wakeup muy buena y elegante solución, también se me había ocurrido lo siguiente: Código PHP: Última edición por zsamer; 15/07/2007 a las 13:55 |
| ||||
Re: Problema con serialize o unserialize instancia PDO Tambien es una buena opcion aunque te recomendaria optar __wakeup y __sleep porque asi no estas atado a que el objeto siempre se llame igual en la session si no que le das independencia al objeto. Saludos. |
| |||
Re: Problema con serialize o unserialize instancia PDO Gracias GatorV, optaré por Código PHP: |