2012-01-25 36 views
5

tầm quan trọng của việc sử dụng là gì:PHP ::: chuẩn bị Báo cáo ::: freeresult() ::: close()

$stmt->free_result(); 
$stmt->close(); 

Sau một cuộc gọi cơ sở dữ liệu sử dụng statments chuẩn bị như thế này:

$mysqli=new mysqli("database", "db", "pass", "user"); 

$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? "); 
$stmt->bind_param('i',$_SESSION['id']); 
$stmt->execute(); 
$stmt->bind_result($email); 
while($stmt->fetch()){ 
    echo $email; 
} 
$stmt->free_result(); //why do i need this? 
$stmt->close();  //why do i need this? 

Tôi hỏi vì tôi không thấy bất kỳ sự xuống cấp hiệu suất đáng chú ý nào mà không có chúng. Là những lệnh thường chỉ được sử dụng cho khi tôi lưu trữ các kết quả sử dụng:

$stmt->store_result(); 

Như thế này:

$mysqli=new mysqli("database", "db", "pass", "user"); 

$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? "); 
$stmt->bind_param('i',$_SESSION['id']); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($email); 
while($stmt->fetch()){ 
    echo $email; 
} 
$stmt->free_result(); //why do i need this? 
$stmt->close();  //why do i need this? 

Cuối cùng câu hỏi đi xuống đến khi nào là thời điểm thích hợp để sử dụng freeresult() và đóng ()?

Trả lời

1

Câu lệnh free_results cho cơ sở dữ liệu biết nó có thể giải phóng tập kết quả.

Khi thực hiện câu lệnh của bạn, trình lặp được tạo. Ứng dụng khách (ứng dụng của bạn) lặp lại từng kết quả bằng cách tải xuống từng cái một hoặc theo từng đoạn.

Điều này cho phép ứng dụng lặp lại hàng triệu bản ghi mà không tải xuống tất cả các kết quả trong một đoạn.

EDIT

Kết quả miễn phí sẽ giải phóng bộ nhớ ở phía máy khách. Hữu ích nếu một bản ghi là rất lớn và bộ nhớ cần phải được giải phóng.

Xem: http://php.net/manual/en/function.mysql-free-result.php

+1

Không, nó không nói bất cứ điều gì để các cơ sở dữ liệu – zerkms

+0

Vì vậy, tôi có thể sử dụng freeresult() ở phần cuối của bất kỳ tuyên bố mà tôi không cần phải storeresult() cho? –

+1

@Dan Kanze: miễn là bạn không gặp phải bất kỳ sự cố nào - đừng làm vậy, đừng lãng phí chu kỳ CPU cho không có gì – zerkms

Các vấn đề liên quan