sql_query() 트랜잭션 문의

2026-04-26 (일) 01:02:19 316
그누보드에서 sql_query($sql) 형태로 사용하느 것으로 알고 있습니다. 오류발생시 트랜잭션으로 rolll_back하려고 하는데 해당 코드가 없는것 같습니다. 아래와 같은 유사 형태로 사용하려고 하는데 어떻게 하면 되는지 궁금합니다.

Copy
try{
sql_query($sql);
}catch(Excetion $e){
rollback();
$message = $e->getMessage();
break;
}

답변 2개 / 댓글 1개

2026-04-26 (일) 12:31:58
Copy
sql_query("START TRANSACTION");

try {
    $result = sql_query($sql, false);

    if (!$result) {
        throw new Exception(sql_error());
    }

    sql_query("COMMIT");

} catch (Throwable $e) {
    sql_query("ROLLBACK");

    $message = $e->getMessage();
}


위 처럼 해보세요.
InnoDB 일 경우만 유효 합니다.
2026-04-26 (일) 01:11:13
오타  Exception

답변에 대한 댓글 1개

try { sql_query() } catch() 방식은 그누보드 기본 함수에서는 의미가 없어요 그리고 롤백함수도 쓰지않아요
또한 try-catch 꼭 처리해야 한다면...
mysqli_begin_transaction($g5['connect_db']);
try {
mysqli_query($g5['connect_db'], $sql);
mysqli_commit($g5['connect_db']);
} catch (Exception $e) {
mysqli_rollback($g5['connect_db']);
}

답변을 작성하려면 로그인이 필요합니다.