MySQLI使用call_user_func_array绑定参数 [英] MySQLI binding params using call_user_func_array

查看:99
本文介绍了MySQLI使用call_user_func_array绑定参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请在下面查看我的代码. 我试图将一系列参数绑定到我准备好的语句中. 我一直在网上四处逛逛,可以看到我必须使用call_user_func_array但无法使它正常工作.我得到的错误是: 第一个参数应该是有效的回调,给出了'Array'" 我可能是错的,但我假设第一个参数可以是一个数组,并且此错误消息可能会引起误解.我认为问题是我的阵列在某种程度上存在错误. 谁能看到我做错了吗?谢谢.

Please see below my code. I am attempting to bind an array of paramenters to my prepared statement. I've been looking around on the web and can see I have to use call_user_func_array but cannot get it to work. The error I get is: "First argument is expected to be a valid callback, 'Array' was given" I may be wrong but I'm assuming the first argument can be an an array and perhaps this error message is misleading. I think the issue is that my array is in someway at fault. Can anyone see what I am doing wrong? Thanks.

$type = array("s", "s");
$param = array("string1","anotherstring");

$stmt = $SQLConnection->prepare("INSERT INTO mytable (comp, addl) VALUES (?,?)");

$params = array_merge($type, $param);

call_user_func_array(array(&$stmt, 'bind_param'), $params);
$SQLConnection->execute();

推荐答案

我不知道您为什么必须使用call_user_func_array,但这是另一个故事.

I wouldn't know why you have to use call_user_func_array, but that's another story.

在我眼中唯一可能出错的是您正在使用对该对象的引用.假设您使用的是PHP 5. *,则没有必要:

The only thing that could be wrong in my eyes is that you are using a reference to the object. Assuming you're using PHP 5.*, that is not necessary:

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

这篇关于MySQLI使用call_user_func_array绑定参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆