라이브러리
[PHP] SQLite3::setAuthorizer - 명령문이 수행할 수 있는 작업을 제한하기 위한 권한 부여자로 사용할 콜백을 구성합니다.
SQLite3::setAuthorizer
SQLite3::setAuthorizer는 SQLite3 객체의 authorizer 함수를 설정하는 메서드입니다. authorizer 함수는 SQLite3의 SQL 문을 실행하기 전에 SQL 문을 검사하여 허용하거나 거부하는 역할을 합니다.
사용 이유
SQLite3::setAuthorizer를 사용하는 이유는 SQLite3의 SQL 문을 검사하여 허용하거나 거부하기 위해서입니다. 예를 들어, 특정 테이블에 접근하는 SQL 문을 허용하거나 거부할 수 있습니다.
사용 방법
SQLite3::setAuthorizer를 사용하는 방법은 다음과 같습니다.
1. SQLite3 객체를 생성합니다.
2. authorizer 함수를 설정합니다.
3. SQLite3 객체의 메서드를 호출하여 SQL 문을 실행합니다.
예제
다음 예제는 SQLite3::setAuthorizer를 사용하여 특정 테이블에 접근하는 SQL 문을 허용하거나 거부하는 방법을 보여줍니다.
#hostingforum.kr
php
// SQLite3 객체를 생성합니다.
$db = new SQLite3('example.db');
// authorizer 함수를 설정합니다.
function authorizer($action, $arg1, $arg2, $arg3, $arg4) {
// 테이블 이름이 'example'인 SQL 문을 허용합니다.
if ($action == SQLITE3_CREATE_TABLE && strpos($arg1, 'example') !== false) {
return SQLITE3_OK;
}
// 테이블 이름이 'example'인 SQL 문을 거부합니다.
if ($action == SQLITE3_CREATE_TABLE && strpos($arg1, 'example') !== false) {
return SQLITE3_DENY;
}
// 기본 authorizer 함수를 호출합니다.
return $db->busyTimeout(1000);
}
// authorizer 함수를 설정합니다.
$db->setAuthorizer('authorizer');
// 테이블을 생성합니다.
$db->exec('CREATE TABLE example (id INTEGER PRIMARY KEY, name TEXT)');
// 테이블에 데이터를 삽입합니다.
$db->exec('INSERT INTO example (name) VALUES ("John")');
// 테이블에 데이터를 삽입하는 SQL 문을 허용합니다.
$db->exec('INSERT INTO example (name) VALUES ("Jane")');
// 테이블에 데이터를 삽입하는 SQL 문을 거부합니다.
$db->exec('INSERT INTO non_example (name) VALUES ("Bob")');
// 테이블을 삭제합니다.
$db->exec('DROP TABLE example');
결과
이 예제의 결과는 다음과 같습니다.
* 테이블 'example'을 생성합니다.
* 테이블 'example'에 데이터를 삽입합니다.
* 테이블 'example'에 데이터를 삽입하는 SQL 문을 허용합니다.
* 테이블 'non_example'에 데이터를 삽입하는 SQL 문을 거부합니다.
* 테이블 'example'을 삭제합니다.
주의
SQLite3::setAuthorizer를 사용할 때 주의할 점은 authorizer 함수가 SQLite3 객체의 메서드를 호출할 때 사용하는 SQL 문을 검사하여 허용하거나 거부해야 한다는 점입니다. 또한 authorizer 함수가 SQLite3 객체의 메서드를 호출할 때 사용하는 SQL 문을 검사하여 허용하거나 거부할 때, 테이블 이름, 열 이름, 데이터 유형 등과 같은 정보를 사용해야 합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.