store mysqli_query result in session

前端 未结 3 1802
轮回少年
轮回少年 2021-01-24 13:10

I want to store the result of a MySQLi query as a session variable so that I can reuse it without executing the query again. I don\'t want to execute the same query on every pag

相关标签:
3条回答
  • 2021-01-24 13:41

    Use like this:

    $result = $connection->query("select something from table");
    $_SESSION['session-name'] = $result->fetch_assoc();
    

    OR

    $sql = `select something from table`;
    $result = mysqli_query($sql);
    $_SESSION['session name'] = mysqli_fetch_assoc($result);
    
    0 讨论(0)
  • 2021-01-24 13:57

    If you want to store the data not only for one client, but serverside I would recommend you to look at how to build a in-memory server side cache in php?. Some frameworks have this already built in.

    Otherwise use one of the mysqli API methods like http://php.net/manual/de/mysqli-result.fetch-assoc.php, this should return you an array not an object.

    mysqli_query() returns an object which you can not store into session (there is a method for converting an object to an array, but I would not recommend you to store the whole object) http://php.net/manual/de/function.get-object-vars.php

    0 讨论(0)
  • 2021-01-24 14:02

    Try this:

      if(!isset($_SESSION['query_result'])){
         $anything=mysqli_query($connection,"select something from table name where filed1='$variable' order by id DESC limit 70");
         while($res = mysqli_fetch_row($anything)){
            array_push($_SESSION['query_result'], $res);
         }
      } else {
         $anything = $_SESSION['query_result'];
      }
    while($data=mysqli_fetch_array($anything)){
       print_r($data);
    }
    
    0 讨论(0)
提交回复
热议问题