그누보드(GNU Board)에서 MySQL Prepared Statement를 사용하는 방법 > 웹프로그램

본문 바로가기

웹프로그램

[그누보드] 그누보드(GNU Board)에서 MySQL Prepared Statement를 사용하는 방법

profile_image
최고관리자
2025-04-21 03:07 5 0

본문

 

 그누보드는 기본적으로 sql_query() 함수를 사용하지만, Prepared Statement를 위해서는 다음과 같은 방식으로 사용할 수 있습니다:


1. 기본적인 사용 방법:

 

// 1. Prepared Statement 생성

$sql = "SELECT * FROM {$g5['table_name']} WHERE column = ? AND status = ?";

$stmt = sql_query_prepare($sql);

// 2. 파라미터 바인딩

sql_stmt_bind_param($stmt, "ss", $value1, $value2);

// 3. 실행

$result = sql_stmt_execute($stmt);

// 4. 결과 가져오기

while($row = sql_stmt_fetch_array($result)) {

// 결과 처리

}

// 5. Statement 닫기

sql_stmt_close($stmt);

 

2. 필요한 함수들 (lib/common.lib.php 또는 별도 파일에 추가):

// Prepared Statement 생성

function sql_query_prepare($sql) {

global $g5;

return mysqli_prepare($g5['connect_db'], $sql);

}

// 파라미터 바인딩

function sql_stmt_bind_param($stmt, $types, ...$params) {

return mysqli_stmt_bind_param($stmt, $types, ...$params);

}

// Statement 실행

function sql_stmt_execute($stmt) {

mysqli_stmt_execute($stmt);

return mysqli_stmt_get_result($stmt);

}

// 결과 배열로 가져오기

function sql_stmt_fetch_array($result) {

return mysqli_fetch_array($result);

}

// Statement 닫기

function sql_stmt_close($stmt) {

return mysqli_stmt_close($stmt);

}


바인딩 파라미터 타입:


- i: integer

- d: double

- s: string

- b: blob

주의사항:


1. 그누보드의 기존 함수들과 호환성을 유지하면서 사용해야 합니다.

2. Prepared Statement는 반복적으로 실행되는 쿼리에서 더 효율적입니다.

3. 보안에 민감한 데이터를 다룰 때 특히 유용합니다.

4. 위의 함수들은 그누보드의 기존 DB 연결을 활용합니다.

이러한 방식으로 SQL Injection 공격을 방지하고 더 안전한 데이터베이스 조작이 가능합니다.

 

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색
상담신청