次のエラーがスローされます。
致命的なエラー:クラスmysqli_resultのクローンできないオブジェクトを複製しようとしています
mysqlクエリ結果にcloneを直接使用しようとしている場合:
$result = mysqli_query($con, $query);
$resultsClone = clone $result;
mysqliオブジェクトのクローンを作成する方法はありますか?
次のエラーがスローされます。
致命的なエラー:クラスmysqli_resultのクローンできないオブジェクトを複製しようとしています
mysqlクエリ結果にcloneを直接使用しようとしている場合:
$result = mysqli_query($con, $query);
$resultsClone = clone $result;
mysqliオブジェクトのクローンを作成する方法はありますか?
名前が示すように、複製不可能なオブジェクトを複製することはできません。
もう少し詳しく言うと、この特定のケースでは、mysqli
-result は(多かれ少なかれ-正確な詳細はわかりません)「別の場所」の結果へのポインターです。クローン作成とは、2 つのポインターが「別の場所」で同じ結果を参照することを意味します。これは、1 つの結果から結果をフェッチすると、確実に他の結果に影響を与えるため、深刻な副作用につながる可能性があります。
KingCrunch が既に説明したように、データベースの結果ポインターのクローン作成にはあまり使用されません。ポインターやリソースと同様に、それらが存在するコンテキストは限られています。
ただし、何をしたいかによっては、クエリをもう一度実行することができます。
$result = mysqli_query($con, $query);
$resultClone = mysqli_query($con, $query);
または、アプリケーションの状態に応じて同じリソースに巻き戻すように、フェッチ ロジックをカプセル化します。
ポインターを結果のゼロ行に移動 (リターン) します。 http://www.php.net/manual/ru/mysqli-result.data-seek.php