从DB null结果中获取数组


getting array from DB null result

im正在尝试从数据库中获取一些数据。

我的问题是,当我试图获取数据时,数组上的指针为空。

当我在phpmyadmin中运行sql命令时,我得到了很好的结果。

我还向echo核实了$ids[$i]不为空。

错误消息:

Warning: array_push() expects parameter 1 to be array, null given

谢谢你的帮助。

这是我的代码:

while($i <  $size)
    { 
    $mysqli = new mysqli(****);
    $sql = "SELECT workout_name, user, likes, dislikes, date FROM workouts_wall WHERE id_for_wall = ? "; 
    $stmt = $mysqli->prepare($sql) or trigger_error($mysqli->error."[$sql]");
    $stmt->bind_param('i', $ids[$i]);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($workout_name, $user, $likes, $dislikes, $date);
    if($stmt->fetch())
    {   
       // temp user array
       $workouts = array();
        $workouts["workout_name"] = $workout_name;
        $workouts["picture"] = getPicture($user);
        $workouts["user"] = $user;
        $workouts["likes"] = $likes;
        $workouts["dislikes"] = $dislikes;
        $workouts["date"] = $date;
        // push single product into final response array
        array_push($response["workouts"], $workouts);
    }
    $i++;
}

变量$response["workouts"]本身没有实例化为数组,因此array_push不会将其识别为数组。尝试在while循环之前添加以下内容:

$response["workouts"] = array();

由于一次只向数组中添加一个元素,因此只使用以下代码(而不是array_push调用)会更容易、更简单:

$response["workouts"][] = $workouts;