Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将多个参数绑定到MySQLi prepared语句_Php_Mysqli - Fatal编程技术网

Php 如何将多个参数绑定到MySQLi prepared语句

Php 如何将多个参数绑定到MySQLi prepared语句,php,mysqli,Php,Mysqli,我有一个可变数量的参数要插入,在第49行的SaveIntermediateData.php5中,变量的警告数量与prepared语句中的参数数量不匹配之后,我得到了错误2031没有为prepared语句中的参数提供数据 我相信只考虑了最后一个绑定参数。在Java中,可以使用索引绑定参数,但我不知道mysqli中有这样的方法。 我可以创建全文查询,但我更喜欢使用绑定来避免注入。您只能调用bind\u param一次,因此您必须将所有需要的参数添加到数组中,然后通过call\u user\u fun

我有一个可变数量的参数要插入,在第49行的SaveIntermediateData.php5中,变量的警告数量与prepared语句中的参数数量不匹配之后,我得到了错误2031没有为prepared语句中的参数提供数据

我相信只考虑了最后一个绑定参数。在Java中,可以使用索引绑定参数,但我不知道mysqli中有这样的方法。 我可以创建全文查询,但我更喜欢使用绑定来避免注入。

您只能调用bind\u param一次,因此您必须将所有需要的参数添加到数组中,然后通过call\u user\u func\u数组调用它

试试这个:

$params = array('');
foreach( $_POST as $name => $value ) {
    $params[0] .= 'sss';
    array_push($params, $id, $name, $value);
}

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

if( $stmt->execute()) {
    echo '<h1>OK</h1>';
}
$params = array('');
foreach( $_POST as $name => $value ) {
    $params[0] .= 'sss';
    array_push($params, $id, $name, $value);
}

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

if( $stmt->execute()) {
    echo '<h1>OK</h1>';
}