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

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

问题描述

请看下面我的代码.我试图将一组参数绑定到我准备好的语句.我一直在网上环顾四周,可以看到我必须使用 call_user_func_array 但无法让它工作.我得到的错误是:第一个参数应该是一个有效的回调,给出了'Array'"我可能是错的,但我假设第一个参数可以是一个数组,并且这个错误消息可能具有误导性.我认为问题在于我的阵列在某种程度上有问题.谁能看到我做错了什么?谢谢.

$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,但那是另一回事了.

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

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

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();

解决方案

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

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天全站免登陆