Php 存储mysqli_结果对象(序列化)以实现缓存

Php 存储mysqli_结果对象(序列化)以实现缓存,php,mysqli,Php,Mysqli,有没有合适的方法来存储mysqli返回的结果 我的数据库类相当简单: class Database extends mysqli { private function __construct() { parent::__construct( 'host', 'user', 'xxxxx', 'database_name' ); $this->set_charset("utf8"); $this->query_execute("

有没有合适的方法来存储mysqli返回的结果

我的数据库类相当简单:

class Database extends mysqli {

    private function __construct() {
        parent::__construct( 'host', 'user', 'xxxxx', 'database_name' );
        $this->set_charset("utf8");
        $this->query_execute("SET time_zone = '-0:00'");
    }

    public function query( $sql ) {
        $result = parent::query( $sql );

        return $result;
    }
}
如果假设查询是相同的,我想序列化
$result
集,并将其存储在一个文件中,以实现对需要较长时间处理的大型查询的基本缓存。 $result将返回一个“mysqli_result object”,稍后将使用
$result->fetch_array()
$result->fetch_object()
来检索数据

有办法做到这一点吗

有没有合适的方法来存储mysqli返回的结果

否。

无法缓存mysqli返回的结果对象。

“$result->fetch_object()将被使用”
-为什么?我的意思是,PHP有很多更有用的操作符来迭代数据。Foreach()例如,它将在循环中使用,而($obj=$result->fetch_object()){……}或者($obj=$result->fetch_array()){……},这些方法是本机的,这个问题更多的是缓存,数据迭代总是可以在以后解决,我对它没有任何问题。你说“本机”是什么意思?什么是原生的?我说的原生是指使用mysqli fetch_对象,该对象将返回结果集的当前行作为一个对象,您必须处理缓存,而不是mysql。因此,您需要一个用于缓存的本机方法。在应用程序中,您需要一个对象,而不是mysql方法来创建它。因此,缓存对象已经存在。