zisslaweng.de

 Home    CSS    PHP    HTML    JavaScript    Allgemein    Sitemap   exemption-filter

Eine Klasse ganz tief unten.

Die Datei "z_basedbclass.php5" für den Zugriff auf die Datenbank

<?php
if (!defined('Z_BASEDBCLASSPHP5')) {
  define ('Z_BASEDBCLASSPHP5', 'Z_BASEDBCLASSPHP5');

  class BaseDbMapper extends mysqli {
    public function __construct() {
      parent::__construct(DBSERVER,DBUSER,DBPASSWORD,DBNAME);
      if ($this->connect_error) {
        die("\n".'Connect Error ('.$this->connect_errno.') '
            .$this->connect_error);
      }
      $this->set_charset("latin1");			
    }

    public function base_query($sql) {
      $result = '';			
      $result = $this->query($sql);
      if ($result || (is_object($result) )) {
        return $result; 
      } else {
        printf("Connect failed: %s\n", $this->error);
        if (defined ('LOCAL')) {
          printf("SQL-string: \"%s \"\n", $sql);
        }
          die ("Error "."File: ". __FILE__ ."on line:". __LINE__);
      }
    }
  }
}
?>
 

Es erscheint mir zweckmäßig, solche Konstrukte mittels Abfrage "if(!defined('KONSTANTE')).." nur bedingt zu laden. Damit vermeidet man das lästige und unübersichtliche include_once(), require_once(). Diese Zeilen sowie die php-Anweisungen "<?php" und "?>" werde ich bei den weiteren Beschreibungen weglassen.

Sie sehen, ich verwende als Datenbank MySQL und die mysqli Funktionen von PHP (Das "i" steht für improved). Die Datenbank-Funktionen sind alle in dieser Datei gebündelt, relativ einfach, die SQLite Datenbank, die mit PHP gebündelt ist, zu verwenden.

Bei der Datenbank müssen Sie sich anmelden.

Zu diesem Zweck die Datei "z_globals.php5" mit den Login Daten für die Anmeldung. Davon sollten Sie sich 2 Versionen anlegen, die eine bestimmt für den Einsatz auf dem lokalen Testsystem, die andere für den Webserver.

  define ('DBSERVER', '');
  define ('DBNAME', '');
  define ('DBUSER', '');
  define ('DBPASSWORD', '');
  define ('LOCAL', '/lokal/ZISSLAWENG_2');	
  
  $script_name = isset($_SERVER['ORIG_SCRIPT_NAME'])?
    $_SERVER['ORIG_SCRIPT_NAME']:$_SERVER['SCRIPT_NAME'];

  if (defined ('LOCAL')) { 	
   $script_name = str_replace(LOCAL,'',$script_name);
  }

  $script_name_trim = substr_replace($script_name,'',0,
    strripos($script_name,'/')+1);
 

Diesen Code müssen Sie nicht abtippen. Ein paar Seiten später ein Link auf ein tar Archiv.

 Bei meinem Webhost ist es aus Sicherheitsgründen nicht möglich, die Datenbank von ausserhalb anzusprechen, sondern nur direkt vom Webserver. Deshalb ist es erforderlich, für die notwendigen Test's parallel dazu eine lokale Datenbank zu haben.

Logo