Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 

181 righe
5.2 KiB

<?php
/**
* Description of Database
*
* @author Anselmo
*/
class DatabaseOCI {
//put your code here
public $db = null;
/**
* Costruttore di classe
*/
public function __construct($dbName = "", $params = "") {
$this->db = new OracleOCI($dbName, $params);
}
/**
* Restituisce l'oggetto connessione
*
* @return Oggetto connessione
*/
public function GetConnection() {
return $this->db->_connection;
}
}
class OracleOCI extends DatabaseOCI {
private $_connection;
private $_dbName;
private $_params;
public function __construct($dbName, $params = "") {
$this->_dbName = $dbName;
$this->_params = $params;
}
private function _setConnection() {
if (!is_array($this->_params)) {
$this->_connection = false;
} else {
try {
$pooled = CONNESSIONE_OCI_POOLED;
$conn = null;
if ($pooled) {
$conn = oci_connect($this->_params['DB_USER'], $this->_params['DB_PASS'], "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " . $this->_params['ORACLE_HOST'] . ")(PORT = " . $this->_params['ORACLE_PORT'] . ")) "
. "(CONNECT_DATA =(SERVICE_NAME = " . $this->_params['ORACLE_SERVICE'] . ") (SERVER = POOLED)))", "AL32UTF8");
} else {
$conn = oci_connect($this->_params['DB_USER'], $this->_params['DB_PASS'], "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " . $this->_params['ORACLE_HOST'] . ")(PORT = " . $this->_params['ORACLE_PORT'] . ")) "
. "(CONNECT_DATA =(SERVICE_NAME = " . $this->_params['ORACLE_SERVICE'] . ")))", "AL32UTF8");
}
if (!$conn) {
$this->_connection = false;
} else {
$this->_connection = $conn;
}
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
}
public function db_getStatement($sql) {
$statement = null;
try {
if (!$this->_connection) {
$this->_setConnection();
}
$statement = oci_parse($this->_connection, $sql);
} catch (Exception $e) {
echo $e->getMessage();
}
return $statement;
}
public function getDbName() {
return $this->_dbName;
}
public function lastInsertId() {
try {
$statement = oci_parse($this->_connection, $getID);
$execute = oci_execute($statement, OCI_NO_AUTO_COMMIT);
$row = oci_fetch_array($execute, OCI_ASSOC + OCI_RETURN_NULLS);
$lastID = $row['LASTINSERTID'];
} catch (PDOException $exc) {
echo $exc->getMessage();
}
return $lastID;
}
public function db_checkConnection() {
return $this->_connection ? true : false;
}
public function db_execute($statement) {
if ($this->_connection) {
$execute = oci_execute($statement, OCI_NO_AUTO_COMMIT);
}
return $execute;
}
public function db_fetch_assoc($statement) {
$rows = array();
if ($this->_connection) {
$execute = oci_execute($statement, OCI_NO_AUTO_COMMIT);
if ($execute) {
while ($row = oci_fetch_assoc($statement)) {
$rows[] = $row;
}
}
}
return $rows;
}
public function db_fetch_array($statement) {
$row = array();
if ($this->_connection) {
$execute = oci_execute($statement, OCI_NO_AUTO_COMMIT);
if ($execute) {
$row = oci_fetch_array($statement, OCI_ASSOC + OCI_RETURN_NULLS);
}
}
return $row;
}
public function db_transactionCommit() {
if ($this->_connection) {
oci_commit($this->_connection);
$this->db_close();
}
}
public function db_transactionRollback() {
if ($this->_connection) {
oci_rollback($this->_connection);
$this->db_close();
}
}
public function db_free_statement($statement) {
try {
oci_free_statement($statement);
} catch (Exception $e) {
echo $e->getMessage();
}
}
public function db_close() {
if ($this->_connection) {
try {
oci_close($this->_connection);
$this->_connection = false;
} catch (Exception $e) {
echo $e->getMessage();
}
}
}
}
if (!isset($conOCI)) {
$connessioneOCI = new DatabaseOCI(DBMS, DB_SERVER, array('DB_USER' => DB_USER, 'DB_PASS' => DB_PASS, 'ORACLE_HOST' => ORACLE_HOST, 'ORACLE_PORT' => ORACLE_PORT, 'ORACLE_SERVICE' => ORACLE_SERVICE));
$conOCI = $connessioneOCI->db;
}
if (!isset($conSpidOCI)) {
$connessioneSpidOCI = new DatabaseOCI(DBMS, DB_SERVER, array('DB_USER' => DB_USER_SPID, 'DB_PASS' => DB_PASS_SPID, 'ORACLE_HOST' => ORACLE_HOST, 'ORACLE_PORT' => ORACLE_PORT, 'ORACLE_SERVICE' => ORACLE_SERVICE));
$conSpidOCI = $connessioneSpidOCI->db;
}