
mysqli_stmt::attr_set 함수는 MySQLi 확장 함수의 일부로, MySQLi_STMT_ATTR_USE_RESULT 속성을 사용하여 쿼리의 결과를 캐시에 저장할 수 있습니다. 하지만, 실제로 캐시에 저장되는 것은 아니며, MySQLi 확장 함수가 쿼리의 결과를 메모리에 저장하는 것에 불과합니다.
MySQLi_STMT_ATTR_USE_RESULT 속성을 사용하여 쿼리의 결과를 캐시에 저장하려면, MySQLi_STMT_ATTR_BUFFER_RESULT 속성을 함께 사용해야 합니다. MySQLi_STMT_ATTR_BUFFER_RESULT 속성은 쿼리의 결과를 메모리에 저장하고, MySQLi_STMT_ATTR_USE_RESULT 속성은 결과를 캐시에 저장합니다.
다음은 예제 코드입니다.
mysqli_stmt::attr_set 함수의 사용 가능한 속성은 다음과 같습니다.
- MYSQLI_STMT_ATTR_CURSOR_TYPE: 쿼리의 결과를 커서로 반환할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_CURSOR_NAME: 커서의 이름을 지정합니다.
- MYSQLI_STMT_ATTR_USE_RESULT: 쿼리의 결과를 캐시에 저장할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_BUFFER_RESULT: 쿼리의 결과를 메모리에 저장할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_STATIC_CURSOR: 쿼리의 결과를 정적 커서로 반환할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_CURSOR_FLUSH: 커서를 초기화할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_CURSOR_SCROLL: 커서를 스크롤할지 여부를 지정합니다.
- MYSQLI_STMT_ATTR_CURSOR_OFFSET: 커서의 오프셋을 지정합니다.
각 속성의 기능은 다음과 같습니다.
- MYSQLI_STMT_ATTR_CURSOR_TYPE: 쿼리의 결과를 커서로 반환할 때, 커서의 타입을 지정합니다. 기본값은 MYSQLI_CURSOR_TYPE_READ_ONLY입니다.
- MYSQLI_STMT_ATTR_CURSOR_NAME: 커서의 이름을 지정합니다. 기본값은 NULL입니다.
- MYSQLI_STMT_ATTR_USE_RESULT: 쿼리의 결과를 캐시에 저장할 때, 캐시를 사용할지 여부를 지정합니다. 기본값은 0입니다.
- MYSQLI_STMT_ATTR_BUFFER_RESULT: 쿼리의 결과를 메모리에 저장할 때, 메모리를 사용할지 여부를 지정합니다. 기본값은 0입니다.
- MYSQLI_STMT_ATTR_STATIC_CURSOR: 쿼리의 결과를 정적 커서로 반환할 때, 정적 커서를 사용할지 여부를 지정합니다. 기본값은 0입니다.
- MYSQLI_STMT_ATTR_CURSOR_FLUSH: 커서를 초기화할 때, 커서를 초기화할지 여부를 지정합니다. 기본값은 0입니다.
- MYSQLI_STMT_ATTR_CURSOR_SCROLL: 커서를 스크롤할 때, 커서를 스크롤할지 여부를 지정합니다. 기본값은 0입니다.
- MYSQLI_STMT_ATTR_CURSOR_OFFSET: 커서의 오프셋을 지정합니다. 기본값은 0입니다.
2025-03-28 11:33