summaryrefslogtreecommitdiff
path: root/ext/pdo
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-12-16 15:18:43 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-12-16 15:18:43 +0100
commit52435f94a352f4da84780b689061f92a767d11a0 (patch)
tree61e12bc04cb9b90b5cf22512316c963c4376ca1e /ext/pdo
parent1c29db19d46122066be24d065924fd7052a5b5ee (diff)
parent205d209de931d5c5e1535277531a7e4dc8a6000a (diff)
downloadphp-git-52435f94a352f4da84780b689061f92a767d11a0.tar.gz
Merge branch 'PHP-8.0'
* PHP-8.0: PDO MySQL: Use mysqlnd column names
Diffstat (limited to 'ext/pdo')
-rw-r--r--ext/pdo/pdo_stmt.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c
index b1b6fb9907..bab869eaf8 100644
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@ -138,23 +138,22 @@ int pdo_stmt_describe_columns(pdo_stmt_t *stmt) /* {{{ */
/* if we are applying case conversions on column names, do so now */
if (stmt->dbh->native_case != stmt->dbh->desired_case && stmt->dbh->desired_case != PDO_CASE_NATURAL) {
- char *s = ZSTR_VAL(stmt->columns[col].name);
-
+ zend_string *orig_name = stmt->columns[col].name;
switch (stmt->dbh->desired_case) {
- case PDO_CASE_UPPER:
- while (*s != '\0') {
- *s = toupper(*s);
- s++;
- }
- break;
case PDO_CASE_LOWER:
+ stmt->columns[col].name = zend_string_tolower(orig_name);
+ zend_string_release(orig_name);
+ break;
+ case PDO_CASE_UPPER: {
+ stmt->columns[col].name = zend_string_separate(orig_name, 0);
+ char *s = ZSTR_VAL(stmt->columns[col].name);
while (*s != '\0') {
- *s = tolower(*s);
+ *s = toupper(*s);
s++;
}
break;
- default:
- ;
+ }
+ EMPTY_SWITCH_DEFAULT_CASE()
}
}