MySQL我使用 call_user_func_array 绑定参数不起作用

MySQLI bind params using call_user_func_array not working

为什么它不起作用?我正在尝试根据用户发送的 GET 数据动态绑定参数。不知道有什么问题。

    $bind_param = array();
    $array_param = array();
    $params = array();
    $i = 0;
    $bind_param[$i] = "i";
    $array_param[$i] = $_GET['p2'];

    $query = "SELECT * from point where fixture_id = ? ";

    if(isset($_GET['p1'])){
        $query .= "and user_id = ? ";
        $i++;
        $bind_param[$i] = "i";
        $array_param[$i] = $_GET['p1'];
    }

    $param_type = '';
    $n = count($bind_param);
    for($i = 0; $i < $n; $i++) {
      $param_type .= $bind_param[$i];
    }

    $params[] = $param_type;
    for($i = 0; $i < $n; $i++) {
      $params[] = $array_param[$i];
    }

    $stmt = $mysqli->prepare($query);

    call_user_func_array(array($stmt, 'bind_param'), $params);

    $stmt->execute();

错误:

PHP Warning:  Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given

尝试将引用而不是值放入数组(注意&符号):

$params[] = &$param_type;
for($i = 0; $i < $n; $i++) {
  $params[] = &$array_param[$i];
}