Deberá administrar la lista de argumentos (tipo y valor) a medida que agrega las condiciones. Esto significa que debe usar call_user_func_array
para pasar la lista de valores a bind_param .
Básicamente, en cada uno de tus if declaraciones, no solo agregan la condición, sino que también agregan el tipo de parámetro (por ejemplo, $types .= 'i' ) y el parámetro (por ejemplo, $args[]=$arg ).
Encontrará un buen ejemplo de cómo hacer esto en este comentario del bind_param documentación:https://www.php.net /manual/es/mysqli-stmt.bind-param.php#109256