1

我试图从我的数据库中获取一些数据。

我的问题是,当我尝试获取数据时,我的数组上出现了空指针。

当我在 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++;
}
4

1 回答 1

3

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

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

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

$response["workouts"][] = $workouts;
于 2013-08-13T23:07:17.190 回答