mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-12 22:38:52 +00:00
[ticket/10966] Introduce MSSQL base class for native and ODBC
PHPBB3-10966
This commit is contained in:
parent
ae240930cd
commit
db5df5b6ac
3 changed files with 67 additions and 86 deletions
65
phpBB/includes/db/driver/mssql_base.php
Normal file
65
phpBB/includes/db/driver/mssql_base.php
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package dbal
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('IN_PHPBB'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MSSQL Database Base Abstraction Layer
|
||||||
|
* @package dbal
|
||||||
|
*/
|
||||||
|
abstract class phpbb_db_driver_mssql_base extends phpbb_db_driver
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function sql_concatenate($expr1, $expr2)
|
||||||
|
{
|
||||||
|
return $expr1 . ' + ' . $expr2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape string used in sql query
|
||||||
|
*/
|
||||||
|
function sql_escape($msg)
|
||||||
|
{
|
||||||
|
return str_replace(array("'", "\0"), array("''", ''), $msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
function sql_lower_text($column_name)
|
||||||
|
{
|
||||||
|
return "LOWER(SUBSTRING($column_name, 1, DATALENGTH($column_name)))";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build LIKE expression
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function _sql_like_expression($expression)
|
||||||
|
{
|
||||||
|
return $expression . " ESCAPE '\\'";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build db-specific query data
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
function _sql_custom_build($stage, $data)
|
||||||
|
{
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,7 +26,7 @@ if (!defined('IN_PHPBB'))
|
||||||
*
|
*
|
||||||
* @package dbal
|
* @package dbal
|
||||||
*/
|
*/
|
||||||
class phpbb_db_driver_mssql_odbc extends phpbb_db_driver
|
class phpbb_db_driver_mssql_odbc extends phpbb_db_driver_mssql_base
|
||||||
{
|
{
|
||||||
var $last_query_text = '';
|
var $last_query_text = '';
|
||||||
var $connect_error = '';
|
var $connect_error = '';
|
||||||
|
@ -125,14 +125,6 @@ class phpbb_db_driver_mssql_odbc extends phpbb_db_driver
|
||||||
return ($this->sql_server_version) ? 'MSSQL (ODBC)<br />' . $this->sql_server_version : 'MSSQL (ODBC)';
|
return ($this->sql_server_version) ? 'MSSQL (ODBC)<br />' . $this->sql_server_version : 'MSSQL (ODBC)';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function sql_concatenate($expr1, $expr2)
|
|
||||||
{
|
|
||||||
return $expr1 . ' + ' . $expr2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SQL Transaction
|
* SQL Transaction
|
||||||
* @access private
|
* @access private
|
||||||
|
@ -325,40 +317,6 @@ class phpbb_db_driver_mssql_odbc extends phpbb_db_driver
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape string used in sql query
|
|
||||||
*/
|
|
||||||
function sql_escape($msg)
|
|
||||||
{
|
|
||||||
return str_replace(array("'", "\0"), array("''", ''), $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
function sql_lower_text($column_name)
|
|
||||||
{
|
|
||||||
return "LOWER(SUBSTRING($column_name, 1, DATALENGTH($column_name)))";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build LIKE expression
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
function _sql_like_expression($expression)
|
|
||||||
{
|
|
||||||
return $expression . " ESCAPE '\\'";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build db-specific query data
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
function _sql_custom_build($stage, $data)
|
|
||||||
{
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return sql error array
|
* return sql error array
|
||||||
* @access private
|
* @access private
|
||||||
|
|
|
@ -191,7 +191,7 @@ class result_mssqlnative
|
||||||
/**
|
/**
|
||||||
* @package dbal
|
* @package dbal
|
||||||
*/
|
*/
|
||||||
class phpbb_db_driver_mssqlnative extends phpbb_db_driver
|
class phpbb_db_driver_mssqlnative extends phpbb_db_driver_mssql_base
|
||||||
{
|
{
|
||||||
var $m_insert_id = NULL;
|
var $m_insert_id = NULL;
|
||||||
var $last_query_text = '';
|
var $last_query_text = '';
|
||||||
|
@ -256,14 +256,6 @@ class phpbb_db_driver_mssqlnative extends phpbb_db_driver
|
||||||
return ($this->sql_server_version) ? 'MSSQL<br />' . $this->sql_server_version : 'MSSQL';
|
return ($this->sql_server_version) ? 'MSSQL<br />' . $this->sql_server_version : 'MSSQL';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
public function sql_concatenate($expr1, $expr2)
|
|
||||||
{
|
|
||||||
return $expr1 . ' + ' . $expr2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -490,31 +482,6 @@ class phpbb_db_driver_mssqlnative extends phpbb_db_driver
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape string used in sql query
|
|
||||||
*/
|
|
||||||
function sql_escape($msg)
|
|
||||||
{
|
|
||||||
return str_replace(array("'", "\0"), array("''", ''), $msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*/
|
|
||||||
function sql_lower_text($column_name)
|
|
||||||
{
|
|
||||||
return "LOWER(SUBSTRING($column_name, 1, DATALENGTH($column_name)))";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build LIKE expression
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
function _sql_like_expression($expression)
|
|
||||||
{
|
|
||||||
return $expression . " ESCAPE '\\'";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return sql error array
|
* return sql error array
|
||||||
* @access private
|
* @access private
|
||||||
|
@ -560,15 +527,6 @@ class phpbb_db_driver_mssqlnative extends phpbb_db_driver
|
||||||
return $error;
|
return $error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Build db-specific query data
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
function _sql_custom_build($stage, $data)
|
|
||||||
{
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close sql connection
|
* Close sql connection
|
||||||
* @access private
|
* @access private
|
||||||
|
|
Loading…
Add table
Reference in a new issue