php错误mysqli_stmt :: bind_param()参数计数错误

时间:2015-12-27 11:54:17

标签: php mysqli

我有这段代码

public function bind_array($array) {
    $array=[1,"bob"];
    $type = '';

    foreach ( $array as $var ) {
        switch (true) {
            case is_int ( $var ) :
                $type .= "i";
                break;
            case is_double ( $var ) :
                $type .= "d";
            default :
                $type .= "s";
        }
    }

    $param_array [] = &$type;

    for($i = 0; $i < count ( $array ); $i ++) {
        $param_array [] = &$array [$i];
    }

    call_user_func ( array ($this->stmt,'bind_param' ), $param_array );
}

我总是得到错误的参数计数错误。这里有什么错误?

如果我将最后一行改为

call_user_func ( array ($this->stmt,'bind_param' ), 'is',1,"bob" );

一切都好。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

只需使用call_user_func_array代替call_user_func,因为您正在传递数组。

call_user_func_array ( array ($this->stmt,'bind_param' ), $param_array );

以下是official docs