bear
bear

Reputation: 11615

Why use mysqli_close()?

Is there any reason why I should close the connection after a query or at the end of the script?

What are the benefits of doing/no doing do?

Upvotes: 19

Views: 21699

Answers (2)

Pascal MARTIN
Pascal MARTIN

Reputation: 401002

The connection (if not persistent) is always closed at the end of the script, so, in theory, you don't need to close it yourself.

Still, if your PHP script takes lots of time to execute, it's a good idea to close the connection when you don't have to do any request to the database anymore -- at least, if the long calculations are done after the queries.

This is especially true if your application is deployed on a shared hosting : your user account can generally only have a few connections opened at the same time. (That number of simultaneous opened connections can be pretty small on shared hosting ; it's generally bigger on private servers).


The reason we often don't close connections ourselfves is :

  • we generally don't really know when we have done all our queries -- this is especially true with pages that are made of lots of small "blocks" ; each one of those is independant from the others, and can do queries on its own ; so, when can we close the connection ?
  • web pages are generally quite fast to generate, so we don't really bother about closing the connection to DB.

Upvotes: 31

cletus
cletus

Reputation: 625087

The benefit is if you're going to be doing long-running processing but have finished querying the database then there is no point holding open a connection. The same goes for holding the user session open (which blocks other requests).

An example of this might be creating a large PDF report. This might take you 20-30+ seconds to create and write out the file but you get all the data you need in the first second.

Ordinarily however you may as well do it automatically (assuming the connection isn't persistent).

Upvotes: 5

Related Questions