有没有办法将数组绑定到mysqli prepare [英] Is there a way to bind an array to mysqli prepare
问题描述
我正在尝试创建一个类,该类将执行具有任何数量的变量的许多存储过程中的任何一个
I'm trying to make a class that will execute any one of a number of stored procedures with any amount of variables
我正在使用php和mysqli
Im using php and mysqli
- 我的类枚举一个数组,并根据元素数量(如果有)构造一个字符串
- 例如给出类似
CALL spTestLogin(?,?)
的内容 -
我现在需要使用类似以下的东西来绑定数组中的输入:
- My class enumerates an array and constructs a string based on the number of elements if any
- giving something like this
CALL spTestLogin(?,?)
for example I now need to bind the input from my array using somethin like this:
$ stmt-> bind_param($ this-> paramTypes,$ this-> paramValues);//paramValues是我的数组
$stmt->bind_param($this->paramTypes,$this->paramValues);//paramValues is my array
然后,如果可行,我可以继续努力以获得结果
Then if that works I can work on getting my results
任何想法
推荐答案
您必须执行以下操作:
$params=array_merge(
array($this->paramTypes),
$this->paramValues
);
call_user_func_array(array($stmt, 'bind_param'), $params);
假设$this->paramTypes
是mysqli_stmt::bind_param
要求的格式的字符串-如果不是,则必须首先创建此string
参数.
given that $this->paramTypes
is a string in the format required by mysqli_stmt::bind_param
- if not, you have to create this string
parameter first.
在这种情况下,我不知道out
或inout
参数是否起作用.
I don't know if out
or inout
parameters do work in this case.
这篇关于有没有办法将数组绑定到mysqli prepare的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!