3

抛出以下错误:

致命错误:试图克隆类 mysqli_result 的不可克隆对象

当我尝试直接将克隆用于 mysql 查询结果时:

$result = mysqli_query($con, $query);
$resultsClone = clone $result;

有没有办法克隆 mysqli 对象?

4

3 回答 3

3

顾名思义,克隆一个不可克隆的对象是不可能的。

只是因为要多说一点:在这种特定情况下,mysqli-result 是(或多或少-我不知道确切的细节)指向“其他地方”结果的指针。克隆意味着,两个指针指向“其他地方”的相同结果,这又可能导致严重的副作用,因为从一个结果中获取结果肯定会影响另一个结果。

于 2012-04-25T19:07:37.680 回答
3

正如 KingCrunch 已经解释的那样,克隆数据库结果指针并没有太多用处——它们存在的上下文有限——就像任何指针或资源一样。

但是,根据您想要执行的操作,您可以再次运行查询:

$result      = mysqli_query($con, $query);
$resultClone = mysqli_query($con, $query);

或者您封装获取逻辑,以便根据应用程序的状态在相同的资源上回退。

于 2012-04-26T07:49:36.297 回答
1

将指针(返回)移动到结果的零线。 http://www.php.net/manual/ru/mysqli-result.data-seek.php

于 2013-08-05T07:16:06.833 回答