Seditio Source
Root |
./othercms/elxis_5.3_atlas_rev2452/includes/libraries/elxis/database/adapter.class.php
<?php
/**
* @version        $Id: adapter.class.php 1138 2012-05-18 17:13:22Z datahell $
* @package        Elxis
* @subpackage    Database
* @copyright    Copyright (c) 2006-2012 Elxis CMS (http://www.elxis.org). All rights reserved.
* @license        Elxis Public License ( http://www.elxis.org/elxis-public-license.html )
* @author        Elxis Team ( http://www.elxis.org )
* @description     Elxis CMS is free software. Read the license for copyright notices and details
*/

defined('_ELXIS_') or die ('Direct access to this location is not allowed.');


abstract class
elxisDbAdapter {

    protected
$pdo = null;
    protected
$quote_indentifier = '';


   
/*************/
    /* CONSTRUCT */
    /*************/
   
public function __construct($pdo=null) {
       
$this->pdo = $pdo;
    }


   
/********************************************************/
    /* APPLY QUOTE IDENTIFIER TO A STRING (i.e. TABLE NAME) */
    /********************************************************/
   
public function quoteIdentifier($string) {
        return
$this->quote_indentifier.$string.$this->quote_indentifier;
    }


   
/**********************************/
    /* CHANGE THE CASE OF THE STRINGS */
    /**********************************/
   
public function foldCase($key) {
        switch (
$this->pdo->getAttribute(PDO::ATTR_CASE)) {
            case
PDO::CASE_LOWER: $value = strtolower((string)$key); break;
            case
PDO::CASE_UPPER: $value = strtoupper((string)$key); break;
            case
PDO::CASE_NATURAL: default: $value = (string)$key; break;
        }
        return
$value;
    }


   
/****************************************************/
    /* GET OPTION VALUE (EG. DB NAME) FROM A DSN STRING */
    /****************************************************/
   
protected function getFromDSN($dsn, $option) {
       
$option = strtolower(trim($option));
        if (
$option == '') { return false; }
        if (
stripos($dsn, $option) === false) { return false; }
       
$parts = preg_split('#\:#', $dsn, 2, PREG_SPLIT_NO_EMPTY);
       
$str = (count($parts) == 2) ? $parts[1] : $parts[0];
       
$parts2 = explode(';', $str);
        if (
$parts2) {
            foreach (
$parts2 as $part2) {
               
$parts3 = preg_split('#\=#', $part2, 2, PREG_SPLIT_NO_EMPTY);
                if ((
strtolower(trim($parts3[0])) == $option) && isset($parts3[1])) {
                    return
$parts3[1];
                }
            }
        }
        return
false;
    }


    abstract public function
addLimit($sql, $offset=-1, $limit=-1);


    abstract public function
listTables();


    abstract public function
backup($params);


   
/*****************************************************************/
    /* GET THE LAST ID GENERATED BY AN IDENTITY/AUTOINCREMENT COLUMN */
    /*****************************************************************/
   
public function lastInsertId($tableName = null, $primaryKey = null) {
        return
$this->pdo->lastInsertId($tableName);
    }

}

?>