diff options
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/appframework/db/db.php | 189 | ||||
-rw-r--r-- | lib/private/server.php | 4 | ||||
-rw-r--r-- | lib/private/tagging/tagmapper.php | 6 |
3 files changed, 188 insertions, 11 deletions
diff --git a/lib/private/appframework/db/db.php b/lib/private/appframework/db/db.php index 4aa43a811b3..da3e3a9c1ce 100644 --- a/lib/private/appframework/db/db.php +++ b/lib/private/appframework/db/db.php @@ -21,31 +21,33 @@ */ namespace OC\AppFramework\Db; -use \OCP\IDb; - +use OCP\IDb; +use OCP\IDBConnection; /** + * @deprecated use IDBConnection directly, will be removed in ownCloud 10 * Small Facade for being able to inject the database connection for tests */ class Db implements IDb { /** - * @var \OCP\IDBConnection + * @var IDBConnection */ protected $connection; /** - * @param \OCP\IDBConnection $connection + * @param IDBConnection $connection */ - public function __construct($connection) { + public function __construct(IDBConnection $connection) { $this->connection = $connection; } /** - * Used to abstract the owncloud database access away + * Used to abstract 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 + * @deprecated use prepare instead, will be removed in ownCloud 10 * @return \OC_DB_StatementWrapper prepared SQL query */ public function prepareQuery($sql, $limit = null, $offset = null) { @@ -58,6 +60,7 @@ class Db implements IDb { /** * Used to get the id of the just inserted element * + * @deprecated use lastInsertId instead, will be removed in ownCloud 10 * @param string $tableName the name of the table where we inserted the item * @return int the id of the inserted element */ @@ -65,5 +68,179 @@ class Db implements IDb { return $this->connection->lastInsertId($tableName); } + /** + * Used to abstract 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); + } + + /** + * Executes an, optionally parameterized, SQL query. + * + * If the query is parameterized, a prepared statement is used. + * If an SQLLogger is configured, the execution is logged. + * + * @param string $query The SQL query to execute. + * @param string[] $params The parameters to bind to the query, if any. + * @param array $types The types the previous parameters are in. + * @return \Doctrine\DBAL\Driver\Statement The executed statement. + */ + public function executeQuery($query, array $params = array(), $types = array()) { + return $this->connection->executeQuery($query, $params, $types); + } + + /** + * Executes an SQL INSERT/UPDATE/DELETE query with the given parameters + * and returns the number of affected rows. + * + * This method supports PDO binding types as well as DBAL mapping types. + * + * @param string $query The SQL query. + * @param array $params The query parameters. + * @param array $types The parameter types. + * @return integer The number of affected rows. + */ + public function executeUpdate($query, array $params = array(), array $types = array()) { + return $this->connection->executeUpdate($query, $params, $types); + } + + /** + * Used to get the id of the just inserted element + * @param string $table 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 $table The table name (will replace *PREFIX*) to perform the replace on. + * @param array $input + * @throws \OC\HintException + * + * 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 + */ + public function beginTransaction() { + $this->connection->beginTransaction(); + } + + /** + * Commit the database changes done during a transaction that is in progress + */ + public function commit() { + $this->connection->commit(); + } + + /** + * Rollback the database changes done during a transaction that is in progress + */ + public function rollBack() { + $this->connection->rollBack(); + } + + /** + * Gets the error code and message as a string for logging + * @return string + */ + public function getError() { + return $this->connection->getError(); + } + + /** + * Fetch the SQLSTATE associated with the last database operation. + * + * @return integer The last error code. + */ + public function errorCode() { + return $this->connection->errorCode(); + } + + /** + * Fetch extended error information associated with the last database operation. + * + * @return array The last error information. + */ + public function errorInfo() { + return $this->connection->errorInfo(); + } + + /** + * Establishes the connection with the database. + * + * @return bool + */ + public function connect() { + return $this->connection->connect(); + } + + /** + * Close the database connection + */ + public function close() { + $this->connection->close(); + } + + /** + * Quotes a given input parameter. + * + * @param mixed $input Parameter to be quoted. + * @param int $type Type of the parameter. + * @return string The quoted parameter. + */ + public function quote($input, $type = \PDO::PARAM_STR) { + return $this->connection->quote($input, $type); + } + + /** + * Gets the DatabasePlatform instance that provides all the metadata about + * the platform this driver connects to. + * + * @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform. + */ + public function getDatabasePlatform() { + return $this->connection->getDatabasePlatform(); + } + + /** + * Drop a table from the database if it exists + * + * @param string $table table name without the prefix + */ + public function dropTable($table) { + $this->connection->dropTable($table); + } + + /** + * Check if a table exists + * + * @param string $table table name without the prefix + * @return bool + */ + public function tableExists($table) { + return $this->connection->tableExists($table); + } } diff --git a/lib/private/server.php b/lib/private/server.php index f6fa5387e49..bc9d11404a6 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -77,7 +77,7 @@ class Server extends SimpleContainer implements IServerContainer { return new PreviewManager(); }); $this->registerService('TagMapper', function(Server $c) { - return new TagMapper($c->getDb()); + return new TagMapper($c->getDatabaseConnection()); }); $this->registerService('TagManager', function (Server $c) { $tagMapper = $c->query('TagMapper'); @@ -655,7 +655,7 @@ class Server extends SimpleContainer implements IServerContainer { /** * Returns an instance of the db facade - * + * @deprecated use getDatabaseConnection, will be removed in ownCloud 10 * @return \OCP\IDb */ function getDb() { diff --git a/lib/private/tagging/tagmapper.php b/lib/private/tagging/tagmapper.php index dbeb5526524..ed9b8af25d2 100644 --- a/lib/private/tagging/tagmapper.php +++ b/lib/private/tagging/tagmapper.php @@ -22,7 +22,7 @@ namespace OC\Tagging; use \OCP\AppFramework\Db\Mapper, \OCP\AppFramework\Db\DoesNotExistException, - \OCP\IDb; + \OCP\IDBConnection; /** * Mapper for Tag entity @@ -32,9 +32,9 @@ class TagMapper extends Mapper { /** * Constructor. * - * @param IDb $db Instance of the Db abstraction layer. + * @param IDBConnection $db Instance of the Db abstraction layer. */ - public function __construct(IDb $db) { + public function __construct(IDBConnection $db) { parent::__construct($db, 'vcategory', 'OC\Tagging\Tag'); } |