summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-10-21 22:51:56 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2013-10-21 22:51:56 +0200
commite30e4ea1cc128231b702697228841c754046261c (patch)
tree9bc2d425abfbdb1f5c33c32b00bc804a934e29af
parent408e0022dd9ae9b3915a7a9e64d6a90b1396a8ef (diff)
downloadnextcloud-server-e30e4ea1cc128231b702697228841c754046261c.tar.gz
nextcloud-server-e30e4ea1cc128231b702697228841c754046261c.zip
php 5.3 compatibility regarding OC\DB\Connection fixed
-rw-r--r--lib/private/db/connection.php2
-rw-r--r--lib/private/db/connectionwrapper.php93
-rw-r--r--lib/private/server.php3
3 files changed, 96 insertions, 2 deletions
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index 2d3193a148a..2581969dbd0 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -12,7 +12,7 @@ use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\Common\EventManager;
-class Connection extends \Doctrine\DBAL\Connection implements \OCP\IDBConnection {
+class Connection extends \Doctrine\DBAL\Connection {
/**
* @var string $tablePrefix
*/
diff --git a/lib/private/db/connectionwrapper.php b/lib/private/db/connectionwrapper.php
new file mode 100644
index 00000000000..8b195ca1076
--- /dev/null
+++ b/lib/private/db/connectionwrapper.php
@@ -0,0 +1,93 @@
+<?php
+
+namespace OC\DB;
+
+
+class ConnectionWrapper implements \OCP\IDBConnection {
+
+ private $connection;
+
+ public function __construct(Connection $conn) {
+ $this->connection = $conn;
+ }
+
+ /**
+ * Used to the owncloud database access away
+ * @param string $sql the sql query with ? placeholder for params
+ * @param int $limit the maximum number of rows
+ * @param int $offset from which row we want to start
+ * @return \Doctrine\DBAL\Driver\Statement The prepared statement.
+ */
+ public function prepare($sql, $limit = null, $offset = null)
+ {
+ return $this->connection->prepare($sql, $limit, $offset);
+ }
+
+ /**
+ * Used to get the id of the just inserted element
+ * @param string $tableName the name of the table where we inserted the item
+ * @return int the id of the inserted element
+ */
+ public function lastInsertId($table = null)
+ {
+ return $this->connection->lastInsertId($table);
+ }
+
+ /**
+ * Insert a row if a matching row doesn't exists.
+ * @param string The table name (will replace *PREFIX*) to perform the replace on.
+ * @param array
+ *
+ * The input array if in the form:
+ *
+ * array ( 'id' => array ( 'value' => 6,
+ * 'key' => true
+ * ),
+ * 'name' => array ('value' => 'Stoyan'),
+ * 'family' => array ('value' => 'Stefanov'),
+ * 'birth_date' => array ('value' => '1975-06-20')
+ * );
+ * @return bool
+ *
+ */
+ public function insertIfNotExist($table, $input)
+ {
+ return $this->connection->insertIfNotExist($table, $input);
+ }
+
+ /**
+ * Start a transaction
+ * @return bool TRUE on success or FALSE on failure
+ */
+ public function beginTransaction()
+ {
+ return $this->connection->beginTransaction();
+ }
+
+ /**
+ * Commit the database changes done during a transaction that is in progress
+ * @return bool TRUE on success or FALSE on failure
+ */
+ public function commit()
+ {
+ return $this->connection->commit();
+ }
+
+ /**
+ * Rollback the database changes done during a transaction that is in progress
+ * @return bool TRUE on success or FALSE on failure
+ */
+ public function rollBack()
+ {
+ return $this->connection->rollBack();
+ }
+
+ /**
+ * Gets the error code and message as a string for logging
+ * @return string
+ */
+ public function getError()
+ {
+ return $this->connection->getError();
+ }
+}
diff --git a/lib/private/server.php b/lib/private/server.php
index d450907534b..65899f3007e 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -5,6 +5,7 @@ namespace OC;
use OC\AppFramework\Http\Request;
use OC\AppFramework\Utility\SimpleContainer;
use OC\Cache\UserCache;
+use OC\DB\ConnectionWrapper;
use OC\Files\Node\Root;
use OC\Files\View;
use OCP\IServerContainer;
@@ -289,7 +290,7 @@ class Server extends SimpleContainer implements IServerContainer {
* @return \OCP\IDBConnection
*/
function getDatabaseConnection() {
- return \OC_DB::getConnection();
+ return new ConnectionWrapper(\OC_DB::getConnection());
}
/**