0

I have a large amount of fetched rows in mysql table, it takes plenty of time to load the result everytime when the page is call, I might want to cache the result into php memcached to save loading time for every queries once the page loaded.

let say the query function is call:

class Account
{
    public function get_account($mysqli)
    {
        $q  = "SELECT * ";
        $q .= "FROM `account`";

        $sql = $mysqli->query($q);

        if($sql->num_rows !== 0){
            return $sql;
        }
        return false;
    }

}

request the result:

$acc = new Account;
$m = new Memcache;

$m->addServer('localhost', 11211);

$ls = $acc->get_account($mysqli);

$html = '';
while($ob = $ls->fetch_object()){
   $html .= '
                <tr>
                    <td>'.$ob->name.'</td>
                    <td>'.$ob->phone.'</td>
                    <td>'.$ob->email.'</td>
                    <td>'.$ob->country.'</td>
                </tr>';
}

in this case, how can I store the result into memcached? how can memcached know this result is stored and no MySQL query needed to load again?

Ben Koo
  • 79
  • 1
  • 7
  • see here an example with PDO, you can adapt for mysqli or migrate to PDO https://stackoverflow.com/questions/10135391/how-does-memcache-with-mysql-work another one here https://stackoverflow.com/questions/2600720/how-i-can-design-a-cache-system-using-pdo-and-memcached – Alex Andrei Jun 14 '18 at 10:51
  • : "It looks like you're writing your own ORM. Have you considered using one that's already written, tested, and widely supported like [RedBeanPHP](https://redbeanphp.com/), [Doctrine](http://www.doctrine-project.org/), [Propel](http://propelorm.org/) or [Eloquent](https://laravel.com/docs/master/eloquent)?" – tadman Jun 14 '18 at 11:09

0 Answers0