summaryrefslogtreecommitdiff
path: root/adodb-lib.inc.php
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2021-08-17 01:08:57 +0200
committerDamien Regad <dregad@mantisbt.org>2021-08-17 01:08:57 +0200
commit2595a935bc272a451595d27939ba4aaddc4ee68e (patch)
treed5455991ea11e61648ccefb352ebd6a3eb6ccd21 /adodb-lib.inc.php
parentd558d101c514beeb8c91f65ae61d106b201dc472 (diff)
downloadadodb-2595a935bc272a451595d27939ba4aaddc4ee68e.tar.gz
adodb-2595a935bc272a451595d27939ba4aaddc4ee68e.tar.bz2
adodb-2595a935bc272a451595d27939ba4aaddc4ee68e.zip
Redo Merge tag 'v5.21.1'
# Conflicts: # adodb.inc.php # docs/changelog.md # drivers/adodb-mssqlnative.inc.php # drivers/adodb-mysqli.inc.php Fixes #751
Diffstat (limited to 'adodb-lib.inc.php')
-rw-r--r--adodb-lib.inc.php75
1 files changed, 43 insertions, 32 deletions
diff --git a/adodb-lib.inc.php b/adodb-lib.inc.php
index c1d935ab..ced5e126 100644
--- a/adodb-lib.inc.php
+++ b/adodb-lib.inc.php
@@ -673,10 +673,50 @@ function _adodb_pageexecute_no_last_page(&$zthis, $sql, $nrows, $page, $inputarr
return $rsreturn;
}
-function _adodb_getupdatesql(&$zthis, &$rs, $arrFields, $forceUpdate=false, $force=2)
+/**
+ * Performs case conversion and quoting of the given field name.
+ *
+ * See Global variable $ADODB_QUOTE_FIELDNAMES.
+ *
+ * @param ADOConnection $zthis
+ * @param string $fieldName
+ *
+ * @return string Quoted field name
+ */
+function _adodb_quote_fieldname($zthis, $fieldName)
{
global $ADODB_QUOTE_FIELDNAMES;
+ // Case conversion - defaults to UPPER
+ $case = is_bool($ADODB_QUOTE_FIELDNAMES) ? 'UPPER' : $ADODB_QUOTE_FIELDNAMES;
+ switch ($case) {
+ case 'LOWER':
+ $fieldName = strtolower($fieldName);
+ break;
+ case 'NATIVE':
+ // Do nothing
+ break;
+ case 'UPPER':
+ case 'BRACKETS':
+ default:
+ $fieldName = strtoupper($fieldName);
+ break;
+ }
+
+ // Quote field if requested, or necessary (field contains space)
+ if ($ADODB_QUOTE_FIELDNAMES || strpos($fieldName, ' ') !== false ) {
+ if ($ADODB_QUOTE_FIELDNAMES === 'BRACKETS') {
+ return $zthis->leftBracket . $fieldName . $zthis->rightBracket;
+ } else {
+ return $zthis->nameQuote . $fieldName . $zthis->nameQuote;
+ }
+ } else {
+ return $fieldName;
+ }
+}
+
+function _adodb_getupdatesql(&$zthis, &$rs, $arrFields, $forceUpdate=false, $force=2)
+{
if (!$rs) {
printf(ADODB_BAD_RS,'GetUpdateSQL');
return false;
@@ -722,21 +762,7 @@ function _adodb_getupdatesql(&$zthis, &$rs, $arrFields, $forceUpdate=false, $for
$type = 'C';
}
- if ((strpos($upperfname,' ') !== false) || ($ADODB_QUOTE_FIELDNAMES)) {
- switch ($ADODB_QUOTE_FIELDNAMES) {
- case 'BRACKETS':
- $fnameq = $zthis->leftBracket.$upperfname.$zthis->rightBracket;break;
- case 'LOWER':
- $fnameq = $zthis->nameQuote.strtolower($field->name).$zthis->nameQuote;break;
- case 'NATIVE':
- $fnameq = $zthis->nameQuote.$field->name.$zthis->nameQuote;break;
- case 'UPPER':
- default:
- $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote;break;
- }
- } else {
- $fnameq = $upperfname;
- }
+ $fnameq = _adodb_quote_fieldname($zthis, $field->name);
//********************************************************//
if (is_null($arrFields[$upperfname])
@@ -862,7 +888,6 @@ function _adodb_getinsertsql(&$zthis, &$rs, $arrFields, $force=2)
static $cacheRS = false;
static $cacheSig = 0;
static $cacheCols;
- global $ADODB_QUOTE_FIELDNAMES;
$tableName = '';
$values = '';
@@ -913,21 +938,7 @@ static $cacheCols;
$upperfname = strtoupper($field->name);
if (adodb_key_exists($upperfname,$arrFields,$force)) {
$bad = false;
- if ((strpos($upperfname,' ') !== false) || ($ADODB_QUOTE_FIELDNAMES)) {
- switch ($ADODB_QUOTE_FIELDNAMES) {
- case 'BRACKETS':
- $fnameq = $zthis->leftBracket.$upperfname.$zthis->rightBracket;break;
- case 'LOWER':
- $fnameq = $zthis->nameQuote.strtolower($field->name).$zthis->nameQuote;break;
- case 'NATIVE':
- $fnameq = $zthis->nameQuote.$field->name.$zthis->nameQuote;break;
- case 'UPPER':
- default:
- $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote;break;
- }
- } else
- $fnameq = $upperfname;
-
+ $fnameq = _adodb_quote_fieldname($zthis, $field->name);
$type = $recordSet->MetaType($field->type);
/********************************************************/