diff --git a/source/pdo_sqlsrv/pdo_dbh.cpp b/source/pdo_sqlsrv/pdo_dbh.cpp index 4cac40b46..5bbfee696 100644 --- a/source/pdo_sqlsrv/pdo_dbh.cpp +++ b/source/pdo_sqlsrv/pdo_dbh.cpp @@ -155,6 +155,7 @@ struct pdo_encrypt_set_func const char TRUE_VALUE_2[] = "1"; const char FALSE_VALUE_1[] = "false"; const char FALSE_VALUE_2[] = "0"; + transform(val_str.begin(), val_str.end(), val_str.begin(), ::tolower); // For backward compatibility, convert true/1 to yes and false/0 to no std::string attr; diff --git a/source/shared/core_conn.cpp b/source/shared/core_conn.cpp index 23212f065..7a9cd1032 100644 --- a/source/shared/core_conn.cpp +++ b/source/shared/core_conn.cpp @@ -1147,6 +1147,7 @@ size_t core_str_zval_is_true(_Inout_ zval* value_z) const char TRUE_VALUE_1[] = "true"; const char TRUE_VALUE_2[] = "1"; + transform(val_str.begin(), val_str.end(), val_str.begin(), ::tolower); if (!val_str.compare(TRUE_VALUE_1) || !val_str.compare(TRUE_VALUE_2)) { return 1; // true } diff --git a/source/sqlsrv/conn.cpp b/source/sqlsrv/conn.cpp index c3f661ca8..27ef4b914 100644 --- a/source/sqlsrv/conn.cpp +++ b/source/sqlsrv/conn.cpp @@ -135,7 +135,16 @@ struct bool_conn_str_func { { char temp_str[MAX_CONN_VALSTRING_LEN]; - snprintf(temp_str, MAX_CONN_VALSTRING_LEN, "%s={%s};", option->odbc_name, (zend_is_true(value) ? "yes" : "no")); + if (Z_TYPE_P(value) != IS_STRING) { + convert_to_string(value); + } + const char *value_str = Z_STRVAL_P(value); + + snprintf(temp_str, + MAX_CONN_VALSTRING_LEN, + "%s={%s};", + option->odbc_name, + ((stricmp(value_str, "true") == 0 || stricmp(value_str, "1") == 0) ? "yes" : "no")); conn_str += temp_str; } };