在php中实现数据库连接的最佳方式

时间:2015-11-17 05:41:21

标签: php html mysql

我不知道我的方法在php中连接数据库是否正确。

以下是我使用的方法。

1.创建了一个db_functions.php文件。

db_functions.php

     /*----for connecting db----*/
    function db_connect(){

        $connect=new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
        $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $connect;
    }
    function get_student_data(){
      $con=db_connect();
      //rest of my query
    }
    function get_marks($id){
     $con=db_connect();
      //rest of my query
   }

2.在我的每个页面中,我都包含了这个并以这种方式调用函数

<?php

  require 'db_functions.php';
  get_student_data();
  get_marks($id);
?>

但是每次调用函数get_student_data()get_marks()它都会再次调用db_connect函数。

所以这是正确的方法吗?

2 个答案:

答案 0 :(得分:1)

Connection.php文件中创建连接类: -

class Connection{

    public static $PDO =null;

    public static function getConnectionInstance()
    {
       try{
        $PDO = new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
        return $PDO;
        }catch(PDOException $e)
        {
            die($e->getMessage());
        }
    }   

}

或使用此类任何其他php文件: -

require_once './Connection.php';
function __construct() {
        $this->dbh = Connection::getConnectionInstance();
    }

创建构造或调用连接调用的静态方法

答案 1 :(得分:0)

有很多方法可以管理数据库连接,我见过一个全局连接对象,我看到有些人做连接工厂,最终它真正归结为你在特定应用程序中的需求。 / p>

话虽如此,如果你有支持它,我一直是基于闭包的设置的粉丝,因为我发现编写干净的代码变得容易。

function execute_in_db_context($callback) {
    $connect=new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $callback($connect);
    $connect=null; //cleanup because we can
}

execute_in_db_context(function ($db_connection) {
    //blah blah
});