From d514200b560c035d71304b54439c4b917de74069 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 5 Nov 2015 16:31:56 +0100 Subject: [PATCH] Add escapeLikeParameter to IDBConnection --- lib/private/appframework/db/db.php | 9 +++++++++ lib/private/db/connection.php | 10 ++++++++++ lib/public/idbconnection.php | 9 +++++++++ 3 files changed, 28 insertions(+) diff --git a/lib/private/appframework/db/db.php b/lib/private/appframework/db/db.php index 8e3fa6e419..9f912f9c0a 100644 --- a/lib/private/appframework/db/db.php +++ b/lib/private/appframework/db/db.php @@ -258,4 +258,13 @@ class Db implements IDb { return $this->connection->tableExists($table); } + /** + * Espace a parameter to be used in a LIKE query + * + * @param string $param + * @return string + */ + public function escapeLikeParameter($param) { + return $this->connection->escapeLikeParameter($param); + } } diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php index 4d33cd968a..1b86d3d383 100644 --- a/lib/private/db/connection.php +++ b/lib/private/db/connection.php @@ -301,4 +301,14 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection { public function inTransaction() { return $this->getTransactionNestingLevel() > 0; } + + /** + * Espace a parameter to be used in a LIKE query + * + * @param string $param + * @return string + */ + public function escapeLikeParameter($param) { + return addcslashes($param, '\\_%'); + } } diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php index 6a4373583f..945ca14216 100644 --- a/lib/public/idbconnection.php +++ b/lib/public/idbconnection.php @@ -206,4 +206,13 @@ interface IDBConnection { * @since 8.0.0 */ public function tableExists($table); + + /** + * Escape a parameter to be used in a LIKE query + * + * @param string $param + * @return string + * @since 9.0.0 + */ + public function escapeLikeParameter($param); }