【发布时间】:2020-12-22 17:47:21
【问题描述】:
我的基本问题是为数据库请求生成一个自动准备好的语句
$this->stmt_prep->bind_param("sss", $input[0], $input[1], $input[X]);
基本上有 2 个“变量”,我为此请求创建了:
- 数据类型“ssss”
- 用户输入字段为“$Array_as_single_Values”
假设:
$this->stmt_prep->bind_param("sss", $Array_as_single_Values);
$Array_as_single_Values = "Value1", "Value2", "ValueX"
我将 UserInput 读出为
$Value = Array[$input1=> value1, $input2=> value2, $inputX=> valueX]
如何将这个数组的每个值转换为变量或其值
预期结果:
$Array_as_single_Values [$input1 => "value1";
$input2 => "value2";
$inputX => "valueX";] //how to Convert this to needed Data?
$this->stmt_prep->bind_param("sss", $Array_as_single_Values);
同:
$this->stmt_prep->bind_param("sss", $input1, $input2, $inputX);
或
$this->stmt_prep->bind_param("sss", "value1", "value2", "valueX");
目的:如果我有 100 个不同的输入值,我不必重新编写所有语句
【问题讨论】:
-
你是在问如何在事先不知道会有多少个参数的情况下绑定参数?如果是这样,那么答案已经在这里了:stackoverflow.com/questions/24627086/…(以及在线的其他几个地方)
-
对生成自动准备好的语句表示赞成。在这里问的 100 个人中只有一个有这么好的主意
-
是的,我没有写下9个值,但是值和运算符一样多。对不起:)
-
如果您想使用显式类型,只需将其设为可选即可。示例见我的mysqli helper function