抛出以下错误:
致命错误:尝试克隆类mysqli_result
的不可克隆对象
当我尝试直接使用clone来获取mysql查询结果时:
$result = mysqli_query($con, $query);
$resultsClone = clone $result;
有没有办法克隆mysqli对象?
答案 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