정의 위치
- ./config/func.inc.php
정의 내용
/** * The alias of DB::executeQuery() * * @see DB::executeQuery() * @param string $query_id (module name.query XML file) * @param object $args values of args object * @param string[] $arg_columns Column list * @return object Query result data */ function executeQuery($query_id, $args = NULL, $arg_columns = NULL) { $oDB = DB::getInstance(); return $oDB->executeQuery($query_id, $args, $arg_columns); }
용도
- XML 로 정의된 쿼리를 실행하고 그 결과를 반환 합니다.
- ./classes/db/db.class.php 에 정의된 DB::executeQuery() 를 실행합니다.
- executeQuery()->data 로 반환되는 값은 배열(array)이거나 배열이 아닙니다. 참고로 executeQueryArray 는 항상 배열로 값을 반환합니다.
파라메터
- string $query_id : 고유한 쿼리를 구분할 수 있는 값 입니다.
- module.queryname 의 형식을 가지고 있습니다.
- 예를 들어 ./modules/board/queries/getBoardList.xml 에 정의된 getBoardList 쿼리를 실행할 경우, board.getBoardList 가 됩니다.
- 애드온이나 위젯의 경우 widgets.widgetname.queryname 와 같은 형식을 취합니다.
- 예를 들어 ./widgets/content/queries/getMids.xml 에 정의된 getMids 쿼리를 실행할 경우, widgets.content.getMids 가 됩니다.
- 애드온에서의 사용은 anonymous_biology.zip 의 34번째 줄이 예시가 될 수 있습니다. ./addons/annonymous_biology/queries/updatedocuments.xml 에 정의된 updatedocuments 를 실행하려면 addons.anonymous_biology.updatedocuments 가 됩니다.
- module.queryname 의 형식을 가지고 있습니다.
- array|object $args : 쿼리 XML에서 입력 값으로 정의된 값들을 전달합니다.
- array $arg_columns : 쿼리 실행 결과로 가져올 컬럼 목록입니다.
예시
- ./modules/files/file.admin.model.php 에 정의된 getFileList() 메소드
-
// Execute the file.getFileList query $output = executeQuery('file.getFileList', $args, $columnList); // Return if no result or an error occurs if(!$output->toBool()||!count($output->data)) return $output;
-
- ./modules/menu/menu.admin.php 에 정의된 addMenu() 메소드
-
/** * Add a menu * * @param string $title * @param int $siteSrl * @return Object If success, it contains menuSrl */ public function addMenu($title, $siteSrl = 0) { $args = new stdClass(); $args->site_srl = $siteSrl; $args->title = $title; $args->menu_srl = getNextSequence(); $args->listorder = $args->menu_srl * -1; $output = executeQuery('menu.insertMenu', $args); if(!$output->toBool()) { return $output; } $output->add('menuSrl', $args->menu_srl); return $output; }
-
- ./widgets/content/content.class.php 에 정의된 proc($args) 메소드 중
-
$obj = new stdClass(); // Apply to all modules in the site if a target module is not specified if(!$args->module_srls) { $obj->site_srl = (int)$site_module_info->site_srl; $output = executeQueryArray('widgets.content.getMids', $obj); if($output->data) { foreach($output->data as $key => $val) { $args->modules_info[$val->mid] = $val; $args->module_srls_info[$val->module_srl] = $val; $args->mid_lists[$val->module_srl] = $val->mid; $module_srls[] = $val->module_srl; } }
-
- XE Core에서 주로 사용된 곳
- '주로' 사용된 곳을 가리기 어려울 정도로 많은 부분에 사용되었습니다.