Seditio Source
Root |
./othercms/elxis_5.3_atlas_rev2452/includes/libraries/elxis/database/adapters/oci.adapter.php
<?php
/**
* @version        $Id: oci.adapter.php 547 2011-07-30 08:12:50Z 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.');


class
elxisOciAdapter extends elxisDbAdapter {


   
/*************************************/
    /* CALL THE PARENT CLASS CONSTRUCTOR */
    /*************************************/
   
public function __construct($pdo=null) {
       
parent::__construct($pdo);
    }


   
/*************************************/
    /* ADD LIMIT/OFFSET TO SQL STATEMENT */
    /*************************************/
   
public function addLimit($sql, $offset=-1, $limit=-1) {
        if (
$limit < 1) { return $sql; }
        if (
$offset < 0) { $offset = 0; }
       
$limit_sql = "SELECT z2.*
            FROM (
                SELECT ROWNUM AS elxis_db_rownum, z1.*
                FROM ("
.$sql.") z1
            ) z2
            WHERE z2.elxis_db_rownum BETWEEN "
.($offset+1)." AND ".($offset+$limit);
        return
$limit_sql;
    }


   
/*****************************************************************/
    /* GET THE LAST ID GENERATED BY AN IDENTITY/AUTOINCREMENT COLUMN */
    /*****************************************************************/
   
public function lastInsertId($tableName = null, $primaryKey = null) {
        if (
$tableName === null) { return null; }
       
$sequenceName = $tableName;
        if (
$primaryKey) {
           
$sequenceName .= '_'.$this->foldCase($primaryKey);
        }
       
$sequenceName .= '_'.$this->foldCase('seq');
        return
$this->lastSequenceId($sequenceName);
    }


   
/*********************************************************/
    /* GET THE MOST RECENT VALUE FROM THE SPECIFIED SEQUENCE */
    /*********************************************************/
   
public function lastSequenceId($sequenceName) {
       
$stmt = $this->pdo->prepare('SELECT '.$sequenceName.'.CURRVAL FROM dual');
       
$stmt->execute();
        return
$stmt->fetchColumn(0);
    }


   
/****************************/
    /* LIST ALL DATABASE TABLES */
    /****************************/
   
public function listTables() {
       
$stmt = $this->pdo->prepare('SELECT table_name FROM all_tables');
       
$stmt->execute();
        return
$stmt->fetchCol();
    }


   
/***********************************/
    /* BACKUP DATABASE (NOT SUPPORTED) */
    /***********************************/
   
public function backup($params) {
        return -
1;
    }

}

?>