1
0
mirror of synced 2025-01-19 06:51:40 +03:00
doctrine2/classes/Session/Oracle.class.php

27 lines
875 B
PHP
Raw Normal View History

2006-04-13 20:37:28 +00:00
<?php
require_once(Doctrine::getPath().DIRECTORY_SEPARATOR."Session.class.php");
2006-04-13 20:37:28 +00:00
/**
* oracle driver
*/
class Doctrine_Session_Oracle extends Doctrine_Session {
public function modifyLimitQuery($query,$limit,$offset) {
$e = explode("select ",strtolower($query));
$e2 = explode(" from ",$e[1]);
$fields = $e2[0];
$query = "SELECT $fields FROM (SELECT rownum as linenum, $fields FROM ($query) WHERE rownum <= ($offset + $limit)) WHERE linenum >= ".++$offset;
return $query;
}
/**
* returns the next value in the given sequence
* @param string $sequence
* @return integer
*/
public function getNextID($sequence) {
$stmt = $this->query("SELECT $sequence.nextval FROM dual");
$data = $stmt->fetch(PDO::FETCH_NUM);
return $data[0];
}
}
?>