试图克隆类mysqli_result的不可克隆对象

时间:2012-04-25 19:02:58

标签: php oop mysqli fatal-error

抛出以下错误:

  

致命错误:尝试克隆类mysqli_result

的不可克隆对象

当我尝试直接使用clone来获取mysql查询结果时:

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

有没有办法克隆mysqli对象?

3 个答案:

答案 0 :(得分:3)

顾名思义,无法克隆不可克隆的对象。

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

答案 1 :(得分:2)

As KingCrunch already explained,克隆数据库结果指针没什么用 - 它们有一个有限的上下文 - 就像任何指针或资源一样。

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

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

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

答案 2 :(得分:1)

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