| | |
| | | <?php |
| | | |
| | | /** |
| | | /* |
| | | +-----------------------------------------------------------------------+ |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2011-2014, Kolab Systems AG | |
| | |
| | | } |
| | | } |
| | | |
| | | // replace escaped '?' back to normal, see self::quote() |
| | | $query = str_replace('??', '?', $query); |
| | | $query = rtrim($query, " \t\n\r\0\x0B;"); |
| | | |
| | | // replace escaped '?' and quotes back to normal, see self::quote() |
| | | $query = str_replace( |
| | | array('??', self::DEFAULT_QUOTE.self::DEFAULT_QUOTE), |
| | | array('?', self::DEFAULT_QUOTE), |
| | | $query |
| | | ); |
| | | |
| | | // log query |
| | | $this->debug($query); |
| | |
| | | $mode = $this->in_transaction ? OCI_NO_AUTO_COMMIT : OCI_COMMIT_ON_SUCCESS; |
| | | |
| | | if ($result) { |
| | | foreach ($args as $param => $arg) { |
| | | foreach (array_keys($args) as $param) { |
| | | oci_bind_by_name($result, $param, $args[$param], -1, SQLT_LNG); |
| | | } |
| | | } |
| | |
| | | |
| | | foreach (explode("\n", $sql) as $line) { |
| | | $tok = strtolower(trim($line)); |
| | | if (preg_match('/^--/', $line) || $tok == '') { |
| | | if (preg_match('/^--/', $line) || $tok == '' || $tok == '/') { |
| | | continue; |
| | | } |
| | | |
| | |
| | | |
| | | $this->debug('ROLLBACK TRANSACTION'); |
| | | |
| | | if ($result = @oci_rollback($this->dbh)) { |
| | | if (@oci_rollback($this->dbh)) { |
| | | $this->in_transaction = false; |
| | | } |
| | | else { |