2011-04-24 3 views

Répondre

8

Une connexion PDO est fermée par destroying its object:

The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted--you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.

si

$this->db = null; 

devrait fonctionner.

+0

thx beaucoup d'amis :) – Malloc

0

PDO n'a pas de méthode de fermeture. Pour détruire la connexion que l'objet PDO représente, détruisez toutes les références à l'objet lui-même avec unset().

1

PDO n'a pas de fonction "close" explicite. Vous pouvez simplement faire

$this->db = null 

pour détruire l'objet, qui nettoiera automatiquement les connexions.

1

vous fermez en mettant la poignée à null

De php.net:

<?php 
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); 
// use the connection here 

// and now we're done; close it 
$dbh = null; 
?> 
0

AOP hasnt méthode close. Je pense que vous pouvez essayer d'annuler $ this-> db, cette déconnexion automatiquement

2

La définition de la variable PDO sur null ferme la connexion et libère toute la mémoire associée.

Une alternative à est d'utiliser closeCursor pour fermer la connexion avec le serveur mais laisser l'objet PDO autour. Cela signifie que vous pouvez continuer à exécuter fetch() et al, même si la connexion a été libérée.

Encore une fois, pas la même chose que mysql_close(), mais néanmoins incroyablement utile.

Questions connexes