gpt4 book ai didi

php - 序列化然后反序列化 mysql 结果对象

转载 作者:行者123 更新时间:2023-11-29 01:17:31 24 4
gpt4 key购买 nike

class a {
public function getContinents () {
// connect to db
$res = $this->db->query("SELECT continent FROM mytable");
return $res;
}
}

$obj = new a();
$getContinents = $obj->getContinents();

所以如果我们在这里检查变量 getContinents,它是一个有效的 mysqli-result 对象

var_dump($getContinents);

结果是

object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(6) ["type"]=> int(0) }

现在我想序列化和反序列化这个对象

$getContinents_to_str = serialize($getContinents);
var_dump(unserialize($getContinents_to_str));

现在结果是

Warning: var_dump(): Property access is not allowed yet in ...

object(mysqli_result)#5 (5) { ["current_field"]=> NULL ["field_count"]=> NULL ["lengths"]=> NULL ["num_rows"]=> NULL ["type"]=> NULL }

请告诉我为什么会这样?哪里错了?

最佳答案

  1. mysqli 类是在类中构建的,这些类的行为不一定与您自己的类相同。
  2. 任何类型的 MySQL 结果集通常是或包含资源,即对 MySQL 服务器上当前打开的数据的引用。您无法序列化此类外部资源,因为它们现在仅有效,但以后可能不会。

简而言之:您不能序列化 MySQL 结果集资源。

关于php - 序列化然后反序列化 mysql 结果对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13217299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com