-2

I'm trying to close the connection in my class and I wonder if it is correct.

My public function disconnect(); close connection.

Class Connection:

<?php

class Connection{

   private static $instance;

   public static function getInstance(){

      if (!isset(self::$instance)) {

        try {
            self::$instance = new PDO(DB_DRIVE . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
            self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

        } catch (PDOException $exception) {
            echo $exception->getMessage();
        }

      }

      return self::$instance;

   }

   public static function prepare($sql){
      return self::getInstance()->prepare($sql);
   }

   public static function lastInsertId($sql){
      return self::getInstance()->lastInsertId($sql);
   }

   public function disconnect(){
      return self::$instance = null;
   }

}

I use so in my script after execution:

<?php
$connectionDb = new Connection();
$connectionDb->disconnect();

Is correct?

Amm12345
  • 1
  • 1
  • 2
  • It looks like you're writing an ORM. Have you tried using one of the existing ones like [Doctrine](http://www.doctrine-project.org/) or [Propel](http://propelorm.org/)? – tadman May 17 '16 at 15:21
  • never used Doctrine or Propel – Amm12345 May 17 '16 at 15:31

1 Answers1

-2

Hi,

I don't know which version you are using, but it should be according to the manual:

$database->close() or $recordset->close()

so in your case

self::$instance->close();

And you can test with

self::$instance->isConnected();

Best regards Axel Arnold Bangert - Herzogenrath 2016