diff options
| author | Mark Newnham <mark@newnhams.com> | 2021-04-05 19:50:32 -0600 |
|---|---|---|
| committer | Damien Regad <dregad@mantisbt.org> | 2021-04-23 08:06:37 +0200 |
| commit | ea34dc3dae2d37668a32ab86faa1f0f78fdf7069 (patch) | |
| tree | 78d8ec5dc22bce5476832d7a4df9f631d6e2a666 /adodb-lib.inc.php | |
| parent | 9e1a2a98764770bc85b2adc004ad61eb47e0fc99 (diff) | |
| download | adodb-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.php | 23 |
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 ) { |
