diff --git a/ext/pdo_firebird/firebird_statement.c b/ext/pdo_firebird/firebird_statement.c index 4ad51ab483d96..7b19f41731b9b 100644 --- a/ext/pdo_firebird/firebird_statement.c +++ b/ext/pdo_firebird/firebird_statement.c @@ -571,10 +571,14 @@ static int firebird_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_dat for (i = 0; i < sqlda->sqld; ++i) { XSQLVAR *var = &sqlda->sqlvar[i]; - if ((var->aliasname_length && !strncasecmp(ZSTR_VAL(param->name), var->aliasname, - min(ZSTR_LEN(param->name), var->aliasname_length))) - || (var->sqlname_length && !strncasecmp(ZSTR_VAL(param->name), var->sqlname, - min(ZSTR_LEN(param->name), var->sqlname_length)))) { + if ( ( + var->aliasname_length + && zend_string_starts_with_cstr_ci(param->name, var->aliasname, var->aliasname_length) + ) || ( + var->sqlname_length + && zend_string_starts_with_cstr_ci(param->name, var->sqlname, var->sqlname_length) + ) + ) { param->paramno = i; break; }