mysqli::use_result
(PHP 5, PHP 7, PHP 8)
mysqli::use_result -- mysqli_use_result - 결과 집합 검색 시작
설명
객체 지향 스타일
public mysqli::use_result(): mysqli_result|false
절차적 스타일
mysqli_use_result(mysqli $mysql
):mysqli_result|false
데이터베이스 연결에서 mysqli_real_query() 함수를 사용하여 실행된 마지막 쿼리에서 결과 집합 검색을 시작하는 데 사용됩니다.
이 함수나 mysqli_store_result() 함수는 쿼리 결과를 검색하기 전에 호출되어야 하며, 해당 데이터베이스 연결에 대한 다음 쿼리가 실패하는 것을 방지하기 위해 둘 중 하나를 호출해야 합니다.
메모: mysqli_use_result() 함수는 데이터베이스에서 전체 결과 집합을 전송하지 않으므로 집합 내의 특정 행으로 이동하기 위해 mysqli_data_seek()와 같은 함수를 사용할 수 없습니다. 이 기능을 사용하려면 결과 집합을 mysqli_store_result()를 사용하여 저장해야 합니다. 클라이언트 측에서 많은 처리가 수행되는 경우 mysqli_use_result()를 사용해서는 안 됩니다. 이는 서버를 묶고 다른 스레드가 데이터를 가져오는 테이블을 업데이트하는 것을 방지하기 때문입니다.
매개변수
이 함수에는 매개변수가 없습니다.
반환 값
버퍼링되지 않은 결과 개체를 반환하거나 오류가 발생한 경우 false
를 반환합니다.
Examples
예제 #1 mysqli::use_result() 예제
객체 지향 스타일
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->use_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
?>
절차적 스타일
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* execute multi query */
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_use_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
/* close connection */
mysqli_close($link);
?>
위의 예는 다음을 출력합니다.
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer
기타
- mysqli_real_query() - SQL 쿼리 실행
- mysqli_store_result() - 마지막 쿼리의 결과 집합을 전송합니다.