web-dev-qa-db-fra.com

mysqli - Dois-je vraiment besoin de faire $ result-> close (); & $ mysqli-> close () ;?

Je viens de commencer à utiliser mysqli. Si je travaille avec de petits ensembles de données sur de petits sites Web (en termes de trafic), dois-je vraiment les utiliser tout le temps?

$result->close(); 
$mysqli->close();

De plus, pour quelqu'un qui fait du PHP et MySQL fonctionnent sans framework, mysqli est-il le moyen généralement préféré d'interagir avec MySQL?

36
James

PHP fermera tous les fichiers ouverts et les connexions DB à la fin du script. C'est une bonne pratique de le faire manuellement lorsque vous avez terminé avec les connexions, mais ce n'est pas un désastre si vous ne le faites pas. Si vous avez une connexion DB qui sera utilisée tout au long du script, vous pouvez également la laisser ouverte.

+1 sur PDO

39
Emil Vikström

J'ai senti qu'une mise à jour de ce fil était nécessaire ...

Selon la documentation actuelle, vous devez toujours utiliser $ mysql-> kill () en plus de $ mysql-> close ().

$thread = $mysqli->thread_id;
$mysqli->kill($thread);
$mysqli->close();

(En passant, j'ai demandé aux développeurs Oracle comment utiliser PDO avec MySQL et ils l'ont découragé. Ils utilisent exclusivement MySQLi. PDO n'a pas été maintenu et il ne prend pas en charge de nombreuses fonctionnalités actuelles de MySQL.) Edit: commentaire obsolète.

Modifier: a changé l'ordre des relevés, comme suggéré.

16
Ixalmida

Vous devez prendre l'habitude de bien nettoyer (appeler à proximité dès que vous avez terminé), ou les fuites de ressources peuvent s'accumuler progressivement jusqu'à ce qu'elles affectent les performances.

En ce qui concerne la couche DB, l'apprentissage PDO devrait valoir la peine car il est bien conçu et compatible avec toutes les principales bases de données.

4
Matthew Flaschen

C'est une bonne pratique de libérer les ressources plus tôt lorsqu'elles ne sont plus nécessaires, cela peut éviter que les ressources soient visibles lorsqu'il y a plus d'utilisateurs simultanés accédant à la même page

2
Raj