diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php index bf0dc15fad..c040fa8e2d 100644 --- a/phpBB/includes/db/dbal.php +++ b/phpBB/includes/db/dbal.php @@ -300,6 +300,18 @@ class dbal return $sql_condition; } + /** + * Build a concatenated string + * + * @param string $string1 Base SQL statement where we append the second one + * @param string $string2 SQL statement that is appended on the first statement + * @return string Concatenated string + */ + function sql_concatenate($string1, $string2) + { + return 'CONCAT(' . $string1 . ', ' . $string2 . ')'; + } + /** * Returns whether results of a query need to be buffered to run a transaction while iterating over them. * diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php index 7709e8fdf5..884206d298 100644 --- a/phpBB/includes/db/firebird.php +++ b/phpBB/includes/db/firebird.php @@ -110,6 +110,14 @@ class dbal_firebird extends dbal return ($raw) ? '2.1' : 'Firebird/Interbase'; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' || ' . $string2; + } + /** * SQL Transaction * @access private diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php index abeabc389f..16b3b3c600 100644 --- a/phpBB/includes/db/mssql.php +++ b/phpBB/includes/db/mssql.php @@ -91,6 +91,14 @@ class dbal_mssql extends dbal return ($this->sql_server_version) ? 'MSSQL
' . $this->sql_server_version : 'MSSQL'; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' + ' . $string2; + } + /** * SQL Transaction * @access private diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php index 6e24f4e9e8..c1ee1b43f0 100644 --- a/phpBB/includes/db/mssql_odbc.php +++ b/phpBB/includes/db/mssql_odbc.php @@ -109,6 +109,14 @@ class dbal_mssql_odbc extends dbal return ($this->sql_server_version) ? 'MSSQL (ODBC)
' . $this->sql_server_version : 'MSSQL (ODBC)'; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' + ' . $string2; + } + /** * SQL Transaction * @access private diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php index 8a4503f111..db1bb86620 100644 --- a/phpBB/includes/db/mssqlnative.php +++ b/phpBB/includes/db/mssqlnative.php @@ -257,6 +257,14 @@ class dbal_mssqlnative extends dbal return ($this->sql_server_version) ? 'MSSQL
' . $this->sql_server_version : 'MSSQL'; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' + ' . $string2; + } + /** * {@inheritDoc} */ diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php index bf22cffafa..dddf615f9c 100644 --- a/phpBB/includes/db/postgres.php +++ b/phpBB/includes/db/postgres.php @@ -154,6 +154,14 @@ class dbal_postgres extends dbal return ($raw) ? $this->sql_server_version : 'PostgreSQL ' . $this->sql_server_version; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' || ' . $string2; + } + /** * SQL Transaction * @access private diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php index 86bfa75a13..38aba0624e 100644 --- a/phpBB/includes/db/sqlite.php +++ b/phpBB/includes/db/sqlite.php @@ -72,6 +72,14 @@ class dbal_sqlite extends dbal return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version; } + /** + * {@inheritDoc} + */ + function sql_concatenate($string1, $string2) + { + return $string1 . ' || ' . $string2; + } + /** * SQL Transaction * @access private