PHP Datenbank Klasse

Damit ich mir die Arbeit für den Datenbankzugriff und die jeweilige Auswertung der Daten vereinfachen kann, habe ich die Datenbank Klasse geschrieben.

In der Klasse habe ich 6 private Variablen erzeugt, die die Daten der Datenbank Session speichern.

private $_connection;
private $_connectionInfo = array();
private $_host;
private $_username;
private $_db;
private $_password;

Der Konstruktor erwartet die Übergabe des Server, Zugangsdaten und die Datenbank und speichert diese in die privaten Variablen ab.

public function __construct($host,$db,$username,$password)
    {
    $this->_host					= $host;
    $this->_db						= $db;
    $this->_username			= $username;
    $this->_password			= $password;
    $this->_connectionInfo	=array("Database" => $this->_db, "UID"=>$this->_username,"PWD"=>$this->_password);
        $this->_connection = sqlsrv_connect( $this->_host, $this->_connectionInfo);
    }

Somit sind die Zugangsdaten der Klasse bekannt. Damit wir noch ein Nutzen daraus ziehen können, fehlt natürlich noch die SQL Abfrage. Dafür habe ich die Funktion execute_query angelegt, die überprüft, ob eine Datenbank Session erstellt wurde. Als Übergabeparameter wird eine SQL Abfrage erwartet. Das Ergebnis der SQL Abfrage wird in einem mehrdimensionalen Array abgelegt. Die erste Dimension des Arrays ist für die Zeilen der Abfrage, während die zweite Dimension die jeweiligen Daten beinhaltet. Das komplette Array dient als Rückgabewert.

public function execute_query($query)
  {
    $var 	= array();
    $e	= 0;
      if($this->_connection)
      {
        
        $stmt1 = sqlsrv_query($this->_connection, $query);
        while( $row = sqlsrv_fetch_array($stmt1,  SQLSRV_FETCH_NUMERIC))
        {
          
          for($i=0;$i<sizeof($row);$i++){
            $var[$e][$i] = $row[$i];
          }
          $e++;
        }
        
      }else{
        
        echo "<p style='color:red; font-size:20px;'>Connection could not be established to SQL.<br /></p>";
        die( print_r( sqlsrv_errors(), true));
           
       } 
    
    return $var;
  }

Zwar nicht notwendig, aber übersichtshalber habe ich die Funktion closeSQL angelegt, die nichts weiter macht als die aktuelle DB Session zu schließen.

public function closeSQL(){
  sqlsrv_close($this->_connection);
}

Zum Schluss noch einmal der komplette Code der Datenbank Kasse.

<?php
/********************************Informationen**************************************************

Author: Stefan Többen
Developed: 24.08.2017

**************************************Funktion***************************************************



************************************TODO*********************************************************

alles erledigt

************************************************************************************************/

class DB{
  private $_connection;
  private $_connectionInfo = array();
  private $_host;
  private $_username;
  private $_db;
  private $_password;
  
  

/*****************************************************************************************************/
/*****************************************************************************************************/
public function __construct($host,$db,$username,$password)
    {
    $this->_host					= $host;
    $this->_db						= $db;
    $this->_username			= $username;
    $this->_password			= $password;
    $this->_connectionInfo	=array("Database" => $this->_db, "UID"=>$this->_username,"PWD"=>$this->_password);
        $this->_connection = sqlsrv_connect( $this->_host, $this->_connectionInfo);
    }
  
/*****************************************************************************************************/
/*****************************************************************************************************/	
public function execute_query($query)
  {
    $var 	= array();
    $e	= 0;
      if($this->_connection)
      {
        
        $stmt1 = sqlsrv_query($this->_connection, $query);
        while( $row = sqlsrv_fetch_array($stmt1,  SQLSRV_FETCH_NUMERIC))
        {
          
          for($i=0;$i<sizeof($row);$i++){
            $var[$e][$i] = $row[$i];
          }
          $e++;
        }
        
      }else{
        
        echo "<p style='color:red; font-size:20px;'>Connection could not be established to SQL.<br /></p>";
        die( print_r( sqlsrv_errors(), true));
           
       } 
    
    return $var;
  }
  
/*****************************************************************************************************/
/*****************************************************************************************************/	
public function closeSQL(){
  sqlsrv_close($this->_connection);
}	
  
  
}
?>

Wie die Datenbank Klasse verwendet wird, zeige ich in meinem nächsten Beitrag. PHP Datenbank Klasse verwenden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert