Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:call_user_func_array()要求参数1是有效的回调mysqli_Php - Fatal编程技术网

Php 警告:call_user_func_array()要求参数1是有效的回调mysqli

Php 警告:call_user_func_array()要求参数1是有效的回调mysqli,php,Php,我有一个脚本试图将数组放入mysqli_stmt_bind_param,我搜索了一下,找到了这个解决方案,但是,代码似乎工作不正常。我没有收到来自数据库的任何结果和警告 Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object 这是我的密码:- $sql_param = array();

我有一个脚本试图将数组放入mysqli_stmt_bind_param,我搜索了一下,找到了这个解决方案,但是,代码似乎工作不正常。我没有收到来自数据库的任何结果和警告

Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object 
这是我的密码:-

$sql_param = array();
    $params = array();

    $query = "SELECT campname,url,views,leads,subs,country,affid FROM camp WHERE";

if (isset($_POST['fromdatetime']) && isset($_POST['todatetime'])) {
    $datefrom = $_POST['fromdatetime'].":00";
    $dateto = $_POST['todatetime'].":59";

    $sql_param[] = $datefrom;
    $sql_param[] = $dateto;
    $bindparam = "ss";
    $query .= "datevisit between (?) AND (?)";
}

if (isset($_POST['affidcode'])) {
    $affidcode = $_POST['affidcode'];
    $sql_param[] = $affidcode;
    $bindparam .= "s";
    $query .= " AND affid = (?)";
}

$sql_param_count = count($sql_param);
$params[] = &$bindparam;

for($i = 0; $i < $sql_param_count; $i++) {
      $params[] = &$sql_param[$i];
    }

    /* create a prepared statement */
    $stmt = mysqli_prepare($mysqli, $query);

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

    /* execute query */
    $status = mysqli_stmt_execute($stmt);
确保$stmt在此块之后是有效的mysqli\u stmt对象,且不为false:

/* create a prepared statement */
$stmt = mysqli_prepare($mysqli, $query);
然后试试这个:

array_unshift($params, $stmt);
call_user_func_array('mysqli_stmt_bind_param', $params); 

我尝试过的@PhiterFernandes可能重复,但不起作用。请尝试将mysqli_stmt_bind_param更改为bind_param。@brevis我也尝试过,仍然是相同的警告,并且没有显示结果。下面是另一个示例,但出现了另一个问题。。。。mysqli_stmt_bind_param期望参数1是mysqli_stmt,布尔givenCheck$stmt在$stmt=mysqli_prepare$mysqli$query之后;线如果它是错误的-SQL中有错误。很好!查询缺少查询结尾的空格。谢谢