2012-04-25 2 views
1

클래스 mysqli_result의 불제 불가능 개체를 복제 시도 mysqli 객체를 복제하는 방법?다음과 같은 오류가 발생합니다

+0

극단적 인 경우에는 다음과 같은 가증 행위가 있습니다.'$ clone = unserialize (serilize ($ target));''$ target'을 직렬화 할 수 있다고 가정합니다. – Christian

답변

3

이름에서 알 수 있듯이 복제 할 수없는 개체를 복제 할 수 없습니다.

조금 더 말하기 때문에 :이 특별한 경우에 mysqli -result는 결과에 대한 포인터 인 "어딘가에"에 대한 포인터입니다 (정확한지는 알 수 없습니다). 복제는 두 개의 포인터가 동일한 결과에 "다른 곳에서"referes한다는 것을 의미합니다. 한 번의 결과에서 결과를 가져 오는 것이 다른 하나의 결과에 확실히 영향을 줄 수 있기 때문에 다시 심각한 부작용을 초래할 수 있습니다.

+0

나는 확실히 그것에 대해 조사 할 예정이다. 대답은 – 3emad

2

As KingCrunch already explained과 같이 데이터베이스 결과 포인터를 복제 할 때 사용되는 제한된 컨텍스트는 포인터 또는 리소스와 같이 제한된 컨텍스트를 사용합니다.

당신이 그러나 수행하려는 작업에 따라, 당신은 단지 쿼리를 두 번 실행할 수 있습니다

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

을 또는 당신은 당신의 상태에 따라 동일한 자원에 되감기 있도록 논리를 가져 캡슐화하여 신청.

+0

고맙다. 내가 한 일을 반복하여 데이터를 추출하여 데이터를 추출한 결과 두 번째 루프 출력에서 ​​다시 사용하고 data_seek를 사용하여 포인터를 다시 설정하려고합니다. – 3emad

+0

@ 3emad : 그게 캡슐화 된 것입니다. – hakre

관련 문제