我一直在尝试使用call_user_func_array()
,但似乎没有做对。
$sql_sentence = "SELECT * FROM test_table WHERE Fag = ? AND (" . $sql_subject . ") AND (" . $sql_grade . ") AND (" . $sql_type . ")";
$sql = $conn->prepare($sql_sentence);
$allarrays = array_merge(array('ssss'),array($_POST['Fag']),$_POST['subject'],$_POST['Grade'],$_POST['Type']);
//testing to see if it prints out right values of array.
for ($x = 0; $x < count($allarrays); $x++) {
echo "The number $x is $allarrays[$x] <br>";
}
call_user_func_array(array($sql, "bind_param"),$allarrays);
$sql->execute();
但我收到此错误警告:参数2到mysqli_stmt :: bind_param()应该是参考,并将其指向行call_user_func...
。
当我打印出SQL语句时,它看起来像这样:
SELECT * FROM test_table WHERE Fag = ? AND (Subject LIKE ?) AND (Grade LIKE ?) AND (Type LIKE ?)
并且所有数组值都是正确的,并且第一个数组值是&#39; ssss&#39;,并且在第一个数组之后出现四个具有不同值的数组。
我在这里做错了吗? 你需要更多代码吗?
编辑:你能打开这个问题。我找到了一个与类似问题不同的答案!认为它应该打印在这里。答案 0 :(得分:-1)
`mysite/sub-folder/TBSBE or mysite/sub-folder/page/TBSBE`
预计其第一个参数为call_user_func_array
而不是callable
:
混合call_user_func_array(可调用$ callback,数组$ param_arr)
究竟是哪个功能试图通话? array
?
如果是这样,它需要看起来像这样:
mysqli_stmt::bind_param()