1) PHP cierra conexiones no persistentes a BD al terminar el scirpt (el proceso de la "pagina") .. también cierra sockets abiertos y se deshace de toda variable creada durante la ejecución del script (incluido definición de objetos).
2) Puedes usar conexiones Persistentes (msyql_pconnect() por ejemplo) .. Ahí es Msyql el que decide por "cliente" (IP) si ya inició una conexión a la BD y la mantiene (consumiendo más recursos del servidor de BD) pero, la llamada a mysql_pconnect() debes hacerla igualmente . .es "Mysql" (o el motor de BD que se use) el que gestiona si la conexión está abierta o no ..
Si dices usar un objeto para gestionar tu BD .. igualmente debes instanciarlo y llamar a tu método que realice la conexión a tu BD en todo script (página).
3) En las sesiones (o cokies) las variables de tipo array y objetos pasan "serializados" (planos). Si propagas un objeto en una sesión o cookie los -métodos se pierden- por ende debes incluir en tus scritps los métodos (la classe) y re-asignar las variables del objeto de tu sesión (o cookie) .. Ejemplo:
Código PHP:
<?
include ("objeto.class.php");
if (isset($_SESSION['objeto_sesion'])){
$objeto=$_SESSION['objeto_sesion'];
} else {
$objeto=new objeto();
}
// Y a partir de aquí continuas usando tu objeto de la forma habitual: $objeto->metodo() o como corresponda.
Un saludo,