要求文件需要数据库连接的正确方法

I don't use php very often and was wondering if someone could answer this question for me.

I have a folder structure like so:

-pages/rightCol.php
-pages/privacyPolicy.php
index.php

In my index file I have a connection to the database like this:

ob_start();
require($_SERVER['DOCUMENT_ROOT'] . "/inc/db.inc.php");

That works fine.

I wanted to separate out some repeated code between pages so I created the rightCol.php file. It needs the connection to the database. So right now I create a query result at the top of the index file and use the statement:

This works.

I also wanted to include it in the privacyPolicy.php page. This does not work because I do not want to put the query code at the top of every page that requires the rightCol.php file.

I would like to put the db stuff inside the rightCol.php. When I try this, then my privacyPolicy.php file works but then my index breaks. Probably because I require the db file twice, once at the top of the index and once in the rightCol.php file.

How can I set this up properly where I do not need to repeat code.

Thanks

EDIT

I changed my call to use require_once.

The privacyPolicy.php page works fine but when I view my index.php it has errors.

Error: No DB selected.

  1. Include the db/inc.php only at the start of your index.php and open the connection. That way, it will stay open throughout the whole script. Then just close it at the very end of your site;
  2. If you are having problem knowing where to include and not ( and still for some unknown reason want to include it more then once ), then get used to require_once method. This way the file will be included only once and the 2nd attempt will be ignored.

Well, the quick way to solve the problem is to use require_once. But i highly recommend that you use a micro-framework like Slim.