Store mySQLi array in PHP session?

2019-09-21 12:33发布

问题:

How do you store mySQLi array in PHP session? I used while loop to render out the array but how should I assign each of them to the session?

Here is my attempt:

while($row = mysqli_fetch_array($sqlCommand)){ 
             $id = $row["id"];
             $product_name = $row["product_name"];
             $price = $row["price"];
             $all_list .= "id= $id, product name = $product_name, price = $price \n";
}

/*only work if only LIMIT  1*/
//$_SESSION["id"] = $id;
//$_SESSION["product_name"] = $product_name;
//$_SESSION["price"] = $price;

I have also tried to assign session variable to each of the array however it only works if the result is limited to one. In my case the result will be at least one or more. How can I do that?

回答1:

while($row = mysqli_fetch_array($sqlCommand)){ 
             $_SESSION[]['id'] = $row["id"];
             $_SESSION[]['product_name'] = $row["product_name"];
             $_SESSION[]['price'] = $row["price"];
             $_SESSION[]['all_list'] .= "id= $id, product name = $product_name, price = $price \n";
}

Will store all rows as an array in your session.

To look at the result use the following line after the while loop: var_dump($_SESSION);

To access a specific value (for example id) use the following: echo $_SESSION[0]['id'];