EnexoOnoma
EnexoOnoma

Reputation: 8836

Beginner question on mySQL and PHP to avoid connecting to DB on every page

I code a simple php/mysql web page, that there is page1.php, page2.php and so on. Because I make use of the database on every page (or at least the 90% of them) I place on the top of them the standard

mysql_connect("localhost"," "," ");
mysql_select_db(" ");
.
.
mysql_close();

with my queries.

My question is do I really need to connect to the database on each page or is there any way to avoid this and still stay connected? Some of the pages are linked to the others and I can make use of SESSIONS to post some variables, but my question goes to something more globalized.

Upvotes: 8

Views: 2728

Answers (4)

Travis Pessetto
Travis Pessetto

Reputation: 3298

If you just want to make it so that you don't have to hard code it into the top of every file write the connection code in a file then use require /path/to/file/name.php and it will establish it everytime Note: it might be include and not require.

Upvotes: 1

swordfish
swordfish

Reputation: 4995

Try using

mysql_pconnect() 

From PHP.net

"acts very much like mysql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mysql_close() will not close links established by mysql_pconnect())."

Upvotes: 1

jli
jli

Reputation: 6623

You can use mysql_pconnect for a persistent connection, although its not going to help you that much and it can be a big pain to do properly. Its almost just better to connect on every page, especially if the database server is running on the same machine as the php server.

Upvotes: 6

ChrisLively
ChrisLively

Reputation: 88044

The web works in a disconnected state by nature. Meaning that you have no idea if the client is going to come back for a second request or not.

Regardless you absolutely want to connect/disconnect from the database on every single page. This is the only way to ensure you aren't leaking connections and the site can stay responsive.

Most systems have built in ways to handle connection pooling which makes the act of requesting a new connection very very fast and therefore something you don't have to worry about.

Upvotes: 8

Related Questions