繁体   English   中英

php mysqli绑定参数:在准备好的语句中没有为参数提供数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM