수평선1203

install_db.php 개선점입니다.

· 2024-11-30 (토) 14:37:34 · 5234 · 8

기존 디비에 테이블이 있을때 재설치시 이미 테이블이 있다고 에러가 나서 보니 기존 테이블 지우는 로직이 없더라구요. 그래서 아래처럼 추가했습니다.

 

사전에 다음코드 주석처리했습니다.

$result = sql_query(" SELECT @@sql_mode as mode ", true, $dblink);
$row = sql_fetch_array($result);
if($row['mode']) {
    //sql_query("SET SESSION sql_mode = ''", true, $dblink);//주석처리
    //$mysql_set_mode = 'true';//주석처리

}

 

기존 코드

// sql_board.sql 파일의 테이블명을 변환
        $source = array("/__TABLE_NAME__/", "/;/");
        $target = array($create_table, "");
        $sql = preg_replace($source, $target, $sql);
        sql_query($sql, false, $dblink);

 

변경된 코드

// sql_board.sql 파일의 테이블명을 변환
        $source = array("/__TABLE_NAME__/", "/;/");
        $target = array($create_table, "");
        $sql = preg_replace($source, $target, $sql);
        sql_query("DROP TABLE IF EXISTS $create_table", false, $dblink);//추가한 부분
        sql_query($sql, false, $dblink);

 

감사합니다.

|

댓글 8개

감사합니다

감사합니다.^^

재설치 를 안해봐서 몰라는데 감사합니~~^

사실 SET SESSION sql_mode = true 가 아니면 에러가 안납니다.

mysql 의 특수성입니다.

다른 디비이면 문제가 됩니다.

sql_query("DROP TABLE IF EXISTS $create_table", false, $dblink);

이부분은 mysql 이라도 추가했으면합니다.

기존테이블데 다른 DB있는거 모르고 설치하면 큰일나겠네요 ㅎㅎ

댓글을 작성하시려면 로그인이 필요합니다.
+
제목 글쓴이 날짜 조회
25-01-04 조회 5,304
25-01-02 조회 5,036
24-12-31 조회 5,265
24-12-30 조회 5,499
24-12-28 조회 5,546
24-12-26 조회 6,021
24-12-25 조회 5,336
24-12-24 조회 5,766
24-12-24 조회 4,954
24-12-19 조회 5,396
24-12-17 조회 5,250
24-12-17 조회 5,003
24-12-16 조회 5,005
24-12-14 조회 5,663
24-12-14 조회 5,392
24-12-12 조회 5,467
24-12-10 조회 5,169
24-12-03 조회 5,548
24-12-01 조회 5,200
24-11-30 조회 5,235
24-11-29 조회 6,780
24-11-28 조회 5,102
24-11-25 조회 4,846
24-11-22 조회 4,940
24-11-20 조회 5,293
24-11-19 조회 4,887
24-11-16 조회 5,474
24-11-13 조회 4,970
24-11-11 조회 5,434
24-11-09 조회 5,249