[英]php mysqli binding parameter:No data supplied for parameters in prepared statement
好的,这是我的代码,可以动态绑定参数。
$sql = "INSERT INTO `users` (`name`, `password`, `email`, `permission`) VALUES (?, ?, ?, ?)";
$sql_stmt = $mysqli->prepare ($sql);
$test = array("ssss","1","2","3","4");
call_user_func_array(array($sql_stmt,'bind_param') ,$test);
$sql_stmt->execute();
我收到“在准备好的语句中没有为参数提供数据”错误。 但是,以下行将起作用。
call_user_func_array(array($sql_stmt,'bind_param') ,array("ssss","1","2","3","4"));
我不知道这是怎么回事。
编辑我只是尝试做一个
echo $sql_stmt->param_count;
我得到正确的计数4。
如果我能对此有所启发,将会有很大的帮助。
谢谢。
阅读PHP页面中的第二个注释,以了解bind_param 。 它说call_user_func_array()
需要通过引用传递参数。 所以这应该工作:
$arr = array('ssss', '1', '2', '3', '4');
call_user_func_array( array($sql_stmt, 'bind_param'), &$arr );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.