Datenbank-Klasse mit PHP

Eine von mir erstellte Datenbank-Klasse in PHP. Im Kern der Sache ging es mir hauptsächlich darum, sowas überhaupt mal geschrieben zu haben. Denn Datenbank-Klassen gibt es mittlerweile wie Sand am Meer und jeder nutzt, worauf er Lust hat.

Eigene Datenbank-Klassen sind mühsam aufzubauen und zu pflegen. Ich gehe daher eher davon aus, das viele Entwickler sich heutzutage bereits vorhandener Klassen bedienen, die vom Entwickler möglichst immer „Up to date“ gehalten werden. Dennoch kann sowas zum lernen sehr sinnvoll sein.

<?php
ini_set("display_errors", "on");

// Database Login
$db_user = ("DB-USER");
$db_name = ("DB-NAME");
$db_pass = ("DB-PASS");
$db_host = ("DB-HOST");
$db_charset = ("utf8");

/*
  Database Class by Holger Krause
  Version 0.1 @ 01.06.2017
*/

class dbConnect
{
  
  /*
   * define variables
   * [visibility] @var
  */
  private $handler;
  private $sql;
  private $result;
  private $db_error;
  private $db_query;
  
  protected $db_user;
  protected $db_name;
  protected $db_pass;
  protected $db_host;
  protected $db_charset;
  
  protected $pdo_attribute;
  protected $pdo_value;
  
  /*
   * class constructor
   *
   * generate random seed:
   * @param [integer] $seed microseconds
   *
  */
  
  public function __construct ($db_user, $db_name, $db_pass, $db_host, $db_charset)
  {
    $this->_handler = new PDO ("mysql:host=$db_host;dbname=$db_name;charset=$db_charset", $db_user, $db_pass);
  }

  public function Set ($pdo_attribute, $pdo_value)
  {
    $this->_handler->setAttribute($this->_pdo_attribute, $this->_pdo_value);
  }
  
  public function Query ($db_query)
  {
    try
    {
      $sql = $this->_handler->query($db_query);
      $this->_result = $sql->fetchAll(PDO::FETCH_ASSOC);
    }
    catch (PDOException $db_error)
    {
      return $db_error->getMessage();
    }
  }
  
  public function Get ()
  {
    return $this->_result;
  }


}

$dbConnect = new dbConnect($db_user, $db_name, $db_pass, $db_host, $db_charset);
$dbConnect->Set('PDO::ATTR_ERRMODE', 'PDO::ERRMODE_EXCEPTION');
$dbConnect->Set('PDO::ATTR_EMULATE_PREPARES', 'false');
$dbConnect->Query('SELECT *
       FROM Table
       WHERE Something = 1;');
$test = $dbConnect->Get();

// Test-Output
  foreach ($test as $key => $value)
  {
    echo ("KEY: " . $key . "<br />");
    
    foreach ($value as $key2 => $value2)
    {
      echo ($key2 . "=" . $value2 . "<br />");
    }
    
    echo ("<hr />");
  }

?>

 

Schreibe einen Kommentar

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