summaryrefslogtreecommitdiff
path: root/adodb-lib.inc.php
diff options
context:
space:
mode:
authorMark Newnham <mark@newnhams.com>2021-04-05 19:50:32 -0600
committerDamien Regad <dregad@mantisbt.org>2021-04-23 08:06:37 +0200
commitea34dc3dae2d37668a32ab86faa1f0f78fdf7069 (patch)
tree78d8ec5dc22bce5476832d7a4df9f631d6e2a666 /adodb-lib.inc.php
parent9e1a2a98764770bc85b2adc004ad61eb47e0fc99 (diff)
downloadadodb-ea34dc3dae2d37668a32ab86faa1f0f78fdf7069.tar.gz
adodb-ea34dc3dae2d37668a32ab86faa1f0f78fdf7069.tar.bz2
adodb-ea34dc3dae2d37668a32ab86faa1f0f78fdf7069.zip
Restructure pageexecute() function and add support for PDO driver
- Refactor the driver matching code to make it easier to add. - Add support for PDO/mysql driver
Diffstat (limited to 'adodb-lib.inc.php')
-rw-r--r--adodb-lib.inc.php23
1 files changed, 12 insertions, 11 deletions
diff --git a/adodb-lib.inc.php b/adodb-lib.inc.php
index 7f6317f4..f58e72f3 100644
--- a/adodb-lib.inc.php
+++ b/adodb-lib.inc.php
@@ -393,6 +393,15 @@ function _adodb_getmenu_option($defstr, $compare, $value, $display)
function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0)
{
$qryRecs = 0;
+
+ /*
+ * These databases require a "SELECT * FROM (SELECT" type
+ * statement to have an alias for the result
+ */
+ $requiresAlias = '';
+ $requiresAliasArray = array('postgres','mysql','mysqli','mssql','mssqlnative','sqlsrv');
+ if (in_array($zthis->databaseType,$requiresAliasArray) || in_array($zthis->dsnType,$requiresAliasArray))
+ $requiresAlias = '_ADODB_ALIAS_';
if (!empty($zthis->_nestedSQL) || preg_match("/^\s*SELECT\s+DISTINCT/is", $sql) ||
preg_match('/\s+GROUP\s+BY\s+/is',$sql) ||
@@ -408,17 +417,9 @@ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0)
$rewritesql = "SELECT ".$hint[0]." COUNT(*) FROM (".$rewritesql.")";
} else
$rewritesql = "SELECT COUNT(*) FROM (".$rewritesql.")";
-
- } else if (strncmp($zthis->databaseType,'postgres',8) == 0
- || strncmp($zthis->databaseType,'mysql',5) == 0
- || strncmp($zthis->databaseType,'mssql',5) == 0
- || strncmp($zthis->dsnType,'sqlsrv',5) == 0
- || strncmp($zthis->dsnType,'mssql',5) == 0
- ){
- $rewritesql = "SELECT COUNT(*) FROM ($rewritesql) _ADODB_ALIAS_";
- } else {
- $rewritesql = "SELECT COUNT(*) FROM ($rewritesql)";
- }
+ } else
+ $rewritesql = "SELECT COUNT(*) FROM ($rewritesql) $requiresAlias";
+
} else {
// now replace SELECT ... FROM with SELECT COUNT(*) FROM
if ( strpos($sql, '_ADODB_COUNT') !== FALSE ) {