2009-02-26 2 views
0

mysqli_use_result()와 병행

한 클라이언트 측 처리를 많이 수행하면,이 서버를 묶어 다른 스레드를 방지 할 수 있기 때문에, mysqli_use_result()를 사용하지 말아야 데이터를 가져 오는 테이블을 갱신하지 못하게합니다.

이것은 myISAM 테이블 또는 InnoDB에만 해당합니까?

답변

1

이 그냥 확인 : MyISAM 잠금, InnoDB 잠금하지 않습니다

<?php 
     $db = new mysqli() or die ("Cannot connect: " . mysqli_connect_error() . "\n"); 
     $query = "SELECT * FROM mytable"; 
     $db->real_query($query) or die ("Cannot fetch: $db->error\n"); 
     $result = $db->use_result() or die ("Cannot use result: $db->error\n"); 
     while($row = $result->fetch_row()) { 
       print join("\t", $row) . "\n"; 
       usleep(1000000); 
     } 
?> 

이 잠금 :

UPDATE mytable /* isam */ SET myvalue = 'test' WHERE id = 100 

를이되지 않습니다

UPDATE mytable /* innodb */ SET myvalue = 'test' WHERE id = 100 
관련 문제