Skip to content

Commit 1fa82b1

Browse files
committed
bindValue now uses try_convert_to_string as fallback if it is not any type expected
1 parent b558a18 commit 1fa82b1

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

ext/pdo_mysql/mysql_statement.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,10 @@ static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da
491491
mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_DOUBLE);
492492
break;
493493
default:
494-
PDO_DBG_RETURN(0);
494+
if (!try_convert_to_string(parameter)) {
495+
PDO_DBG_RETURN(0);
496+
}
497+
mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_VAR_STRING);
495498
}
496499

497500
PDO_DBG_RETURN(1);
@@ -531,7 +534,14 @@ static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da
531534
PDO_DBG_RETURN(1);
532535

533536
default:
534-
PDO_DBG_RETURN(0);
537+
if (!try_convert_to_string(parameter)) {
538+
PDO_DBG_RETURN(0);
539+
}
540+
b->buffer_type = MYSQL_TYPE_STRING;
541+
b->buffer = Z_STRVAL_P(parameter);
542+
b->buffer_length = Z_STRLEN_P(parameter);
543+
*b->length = Z_STRLEN_P(parameter);
544+
PDO_DBG_RETURN(1);
535545
}
536546
#endif /* PDO_USE_MYSQLND */
537547
case PDO_PARAM_EVT_FREE:

0 commit comments

Comments
 (0)