<?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;
}
}
?>