bind_param中的动态参数数

时间:2017-04-28 05:26:30

标签: php mysqli

我一直在尝试使用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;,并且在第一个数组之后出现四个具有不同值的数组。

我在这里做错了吗? 你需要更多代码吗?

编辑:你能打开这个问题。我找到了一个与类似问题不同的答案!认为它应该打印在这里。

1 个答案:

答案 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()